タイトル : Re^3: 追加Formの移動で描いた図が消える 投稿日 : 2009/08/24(Mon) 18:31 投稿者 : 魔界の仮面弁士
> としてFormの枠を触らさないように(最小化も含めて)させてこの問題を > 逃げました。 逃げちゃ駄目です。それだと、他のウィンドウが重なり合ったときに消えてしまいますよ。 そもそも、CreateGraphics メソッドを使った描画手法はあまり一般的ではありません。 PictureBox に描画する場合には、原則として (1) 描画処理は、各 PictureBox の Paint イベントの中に記述する。 描画に必要な Graphics は、イベント引数 e より取得する事。 (2) Dim bmp As New Bitmap(x, y) などで空のビットマップを用意し、 Dim g As Graphics = Graphics.FromImage(bmp) で得た Graphics に描画し、 描画結果の bmp を、PictureBox の Image または BackgroundImage に割り当てる。 のいずれかを使うようにしてみてください。 一度描画した結果をそのまま使い続けるような場合には、案2 を使うと良いでしょう。 一方、描画内容の更新が頻繁にある場合には、案1の Paint イベント法を使います。 この場合、再描画が必要になるたびに各コントールの Paint イベントが呼ばれますので、 そこで描画処理を行うことで、結果が消えてしまわないようにするという物です。 (この方法を使う場合には、Refresh/Update/Invalidate メソッドの違いについて 調べておいてください。不用意な Refresh の繰り返しはパフォーマンスを低下させます) |