C# PictureBoxへの描画を行うとメッセージボックスが表示されません。
いつもお世話になっております。
ふと、PictureBoxに描画をしてみようかと思い
Paintイベントに以下のようにして描画を行いました。
myBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(myBitmap);
pictureBox1.Image = myBitmap;
・
・(g.FillRectangle(・・・);など)
・
(myBitmapはBitmap型のグローバル変数です。)
PictureBoxは、自由にサイズ変更可能なフォームに貼り付け、四方をanchorで固めています。
そのためサイズが変更されるたびに、描画するときBitmapのサイズも変更しないといけないので
この処理を毎回通っています。
(その部分が何だか無駄な気がするのですが、他にいい方法が思いつきませんでした。)
ところが、描画はうまくいったのですが、メッセージボックスを出すと
そのメッセージボックスが一度Altキーを押さないと表示されません。
色々調べて、ダブルバッファリングというものがあると知りました。
そこでPaintイベントで最初にこの処理をし
Image image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
g = Graphics.FromImage(image);
gに描画し終わってから
e.Graphics.DrawImage(image, 0, 0);
としてみると、今度はフォームを移動するのにも一瞬フリーズするようになってしまいました。
(あまり深くプログラミングをしたことがないので、理解しきれなくてやり方が悪いのかも知れません・・・)
メッセージボックスが表示されないのは、PictureBoxの描画のため
他のコントロールの描画ができていなためだと推測しているのですが
どう直していいかわかりません。
どなたか、わかる方がいましたらよろしくお願いします。
<補足>
OS:Vista
VisualStudio2008
.NET Framework3.5
お礼
ご回答ありがとうございます。 実装のイメージが出来ました。 トライしてみます。