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

タイトル Re^9: 追加Formの移動で描いた図が消える
投稿日: 2009/08/25(Tue) 18:32
投稿者魔界の仮面弁士
> 実験結果はこの方法は可能ですが、再描画回数がボタン操作の1回に比較
> して、数回多いときで5回、また画面が少しでも異常状態になれば
> 再描画が始まります。

再描画が繰り返されるという事は、どこかに不自然なコードが
紛れ込んでしまっているのだと思います。


たとえば描画処理の中に、PictureBox1.Refresh() などというコードが
紛れ込んでいないでしょうか。

Invalidate … 再描画を要求するメソッド。再描画のタイミングは OS 側が制御する。
Update     … 再描画を行うメソッド。ただし再描画が不要だった場合には何も起きない。
Refresh    … 強制的に再描画させるためのメソッド。Invalidate + Update の意味。


あるいは、CreateGraphics メソッドを呼び出していたりはしないでしょうか。


> 手動のボタン再描画がこの場合は最適ですが。
Paint イベント法で正しく実装されている場合、ボタンクリックで描画させるためには、
 Private Sub Button1_Click(・・・・・・
  PictureBox1.Refresh()
  PictureBox2.Refresh()
  PictureBox3.Refresh()
 End Sub
に相当するコードを記述することになります。



ただし今回の場合、画面の更新頻度はさほど高くないようですので、
Paint イベントを使って描画処理をおこなわせる(No.9276 の第1案)という手法では無く、
PictureBox の Image プロパティに描画した結果を割り当てる方法(No.9276 の第2案)を
使った方が、都合が良いかと思いますよ。こうすれば、画像が消える事は無いので、
VB6 で AutoRedraw を設定したときのような効果を得る事ができます。

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

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