| 分類:[.NET 全般]
Windows 10 x64 Vs Community 2013 C#
下記コードで、プリンタダイアログを表示後に TextBoxRenderer の IsSupported を確認すると False が返ってきてしまいます。 プリンタダイアログ表示前は IsSupported も True が返って来て描画もうまく行っています。 プリンタダイアログ表示後は、IsSupported を無視して描画に進もうとすると、 「クライアント領域で Visual スタイルが現在無効に設定されているため、Visual スタイルに関連する操作でエラーが発生しました。」 とエラーが発生してしまいます。 試しに、描画処理前に Application.EnableVisualStyles(); を入れてみましたが、同じエラーが発生しました。
描画処理部のコード: private void Render() { Bitmap canvas = new Bitmap(pictureBox1.Width, pictureBox1.Height); Graphics g = Graphics.FromImage(canvas);
if (TextBoxRenderer.IsSupported) { Rectangle textBoxRect = new Rectangle(0, 0, 200, 50); TextFormatFlags textBoxFormat = TextFormatFlags.TextBoxControl; TextBoxRenderer.DrawTextBox(g, textBoxRect, "テキストボックス", new Font("MS UI Gothic", 20), textBoxFormat, System.Windows.Forms.VisualStyles.TextBoxState.Normal); }else { MessageBox.Show("no-Suported"); }
g.Dispose();
pictureBox1.Image = canvas; }
プリントダイアログ表示部: private void プリントダイアログPToolStripMenuItem_Click(object sender, EventArgs e) { System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage);
PrintDialog pdlg = new PrintDialog(); pdlg.Document = pd;
if (pdlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // pd.Print(); } }
なお、同様のエラーが発生するパソコンとしないパソコンがあり、発生しないパソコンには Konicaminolta の プリンタドライバが入っておりません。 エラーが発生するパソコンには C224 や C554 のドライバが入っております。
このドライバが原因でしょうか? |