我有一个Windows窗体,我添加了一个方法,使用Graphics类获取表单的屏幕截图,然后通过SMTP通过电子邮件发送屏幕截图(作为jpg)。现在,当我点击打印按钮(调用此方法)时,它会执行它应该执行的所有操作,但表单不会响应。如果我单击表单上的任何位置,窗口就会消失。我的鼠标将突出显示我将鼠标悬停在桌面上的桌面图标。我必须在任务管理器中将其删除并重新打开表单。这是问题代码
private void buttonPrint_Click(object sender, EventArgs e)
{
listBoxSymptoms.Visible = false;
txtSymptoms.Visible = true;
foreach (object selectedItem in listBoxSymptoms.SelectedItems)
{
txtSymptoms.AppendText(selectedItem.ToString() + Environment.NewLine);
}
SendEmail();
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(PrintImage);
pd.DefaultPageSettings.Landscape = true;
pd.Print();
SqlData.markPrinted(Convert.ToInt32(textBoxLogId.Text));
pd.Dispose();
}
具体来说,pd.Print()函数会导致问题。注释,一切都运行良好。