###事象
32bit環境で作成したアプリケーションを64bit環境で実行すると印刷ダイアログが表示されません。
32bit環境では表示されました。
※環境について
32bit環境:WindowsXP
.Net framework2.0
64bit環境:Windows7以上
.Net framework3.5以上
###やったこと
ネットで調べたところ、マイクロソフトのサイトで下記ページを発見しました。
64bit環境でSystem.Windows.Forms.PrintDialogが使えない?
このページを参考に下記①のソースに「UseEXDialog」プロパティを追加し、②のように設定したのですが、それでも印刷ダイアログは表示されません。
マルチスレッドで実行しているのが影響しているみたいです。
C#
1① 2using (PrintDialog pd = new PrintDialog()) 3{ 4 pd.PrinterSettings = new System.Drawing.Printing.PrinterSettings(); 5 pd.PrinterSettings.PrintRange = System.Drawing.Printing.PrintRange.AllPages; 6 pd.PrinterSettings.Collate = true; 7 pd.PrinterSettings.Copies = 1; 8 pd.AllowPrintToFile = false; 9 pd.AllowSelection = false; 10 pd.AllowSomePages = false; 11 pd.PrintToFile = false; 12 pd.ShowHelp = false; 13 pd.ShowNetwork = true; 14 if (pd.ShowDialog() == DialogResult.OK) 15 { 16 //OKがクリックされた時は印刷する 17 }
C#
1② 2using (PrintDialog pd = new PrintDialog()) 3{ 4 // UseEXDialogプロパティに'true'を設定 5 pd.UseEXDialog = true; --★ 6 pd.PrinterSettings = new System.Drawing.Printing.PrinterSettings(); 7 pd.PrinterSettings.PrintRange = System.Drawing.Printing.PrintRange.AllPages; 8 pd.PrinterSettings.Collate = true; 9 pd.PrinterSettings.Copies = 1; 10 pd.AllowPrintToFile = false; 11 pd.AllowSelection = false; 12 pd.AllowSomePages = false; 13 pd.PrintToFile = false; 14 pd.ShowHelp = false; 15 pd.ShowNetwork = true; 16 if (pd.ShowDialog() == DialogResult.OK) 17 { 18 //OKがクリックされた時は印刷する 19 }
###聞きたいこと
・設定の仕方/箇所は上記のような書き方であっているか?
・マルチスレッドでも動作するには?
・その他解消方法
どうぞよろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/25 05:54