tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 の繰り返しはパフォーマンスを低下させます)

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。