这很奇怪。我从来没有在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()!
任何想法都将不胜感激!
答案 0 :(得分:1)
我认为这已在其他地方得到解答:
尝试设置USEExDialog = True - 它应该可以工作。