タイトル : 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 を設定したときのような効果を得る事ができます。 |