4

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

任何想法将不胜感激!

4

1 回答 1

1

我认为这已经在其他地方得到了回答:

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

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

于 2012-04-05T13:59:26.960 回答