ShowDialog()没有得到DialogResult

时间:2012-04-05 13:55:40

标签: c# winforms visual-studio-2010

这很奇怪。我从来没有在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()!

任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:1)

我认为这已在其他地方得到解答:

http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/a707d202-1a8b-43b1-9fff-08aa7ceb200a/

  

尝试设置USEExDialog = True - 它应该可以工作。