这很奇怪。我从来没有在 C# 中遇到过 ShowDialog 的这个问题。出于某种奇怪的原因,当为 64 位操作系统开发的代码尝试显示打印机对话框时,它从不这样做,并且 DialogResult 为“无”。我已经通过逐行调试它并且看不到任何线索。我检查了命名空间并确认我设置了正确的引用:
using System.IO;
using System.Windows.Forms;
这是代码:
private void printToolStripMenuItem_Click(object sender, EventArgs e)
{
printDoc.DefaultPageSettings = pgSettings;
PrintDialog dlg = new PrintDialog();
dlg.Document = printDoc;
if (dlg.ShowDialog() == DialogResult.OK)
{
printDoc.Print();
}
}
对于 32 位机器,完全相同的代码在几乎相同的版本中没有问题。显示对话框,用户选择打印机,按 OK,任务完成。
在 64 位版本中,ShowDialog() 对 PrintDialog() 不起作用,但对 PrintPreviewDialog() 起作用!
任何想法将不胜感激!