2012-04-05 15 views
4

これは非常に奇妙です。私はC#でShowDialogでこの問題を経験したことはありません。 64ビットOS用に開発されたコードがPrinter Dialogを表示しようとすると、それは決して実行されず、DialogResultは「None」となっています。私は各行を踏んでデバッグし、手がかりを見ない。私は名前空間をチェックし、私は適切な参照を設定することを確認しました:、ShowDialog()はDialogResultを取得しません

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ビットマシンでほぼ同じバージョンでは正確に同じコード、問題ありません:

using System.IO; 
using System.Windows.Forms; 

は、ここでは、コードです。ダイアログが表示され、ユーザがプリンタを選択し、OKを押してタスクが完了する。

64ビットバージョンでは、ShowDialog()はPrintDialog()では機能しませんが、PrintPreviewDialog()では機能します。

アイデアをいただければ幸いです!

答えて

1

私は、これは他の場所で回答されていると思う:

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

は真USEExDialog =を設定してみてください - それは動作するはずです。

+1

実際には、リンク先のページで正しいとマークされている回答は、64ビット用にコンパイルすると表示されます。 –

+0

ありがとう、それは本当です、私は上の票に間違っていました。 @ user1252604あなたがこれに気付き、あなたのために働いていたことを教えてください。 – ericosg

+0

リンクありがとうございます!私はdlg.UseEXDialog = trueを挿入しました。 dlg.ShowDialog()の前に動作しました!私は本当にあなたの助けに感謝します! - Bob T. –

関連する問題