这很奇怪。我在C#的ShowDialog中从来没有遇到过这个问题。由于某种奇怪的原因,当为64位操作系统开发的代码试图显示打印机对话框时,它从来没有这样做过,并且DialogResult为"None“。我已经调试过每一行,但看不到任何线索。我已经检查了名称空间,并验证了我设置了正确的引用:
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()!
任何想法都将不胜感激!
发布于 2012-04-05 21:59:27
我认为这个问题已经在其他地方得到了回答:
http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/a707d202-1a8b-43b1-9fff-08aa7ceb200a/
尝试设置USEExDialog = True -它应该可以工作。
https://stackoverflow.com/questions/10029982
复制相似问题