|
分類:[.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 のドライバが入っております。
このドライバが原因でしょうか?
|