- - PR -
FormがLoad時にPictureBoxに描画できない
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-07 18:32
こんばんは、よろしくお願いいたします。 以下はVB2005のテストソースです。 ---------------------------------------------------------- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load CreateGraphic(PictureBox1.CreateGraphics()) End Sub --------------------- Public Sub CreateGraphic(ByVal eg As System.Drawing.Graphics) eg.DrawLine(Pens.Black, 30, 30, 300, 30) End Sub --------------------- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CreateGraphic(PictureBox1.CreateGraphics()) End Sub ---------------------------------------------------------- Form1_Load時にPictureBoxに描画できないけどButton1_Clickすると描画されるんです。 Form1_Load時に描画する方法はないでしょうか? この現象でもう半日もつぶしちゃいました、(T_T) どなたかアドバイス宜しくお願い致します。 | ||||||||
|
投稿日時: 2006-08-07 19:38
Load はまだフォームを読み込んでいる最中なので、ここで描画しては駄目です。
表示を終えたときに呼び出される適切なイベントで描画してみるとか、自身を Refresh() させてみると描画されると思います。 | ||||||||
|
投稿日時: 2006-08-07 19:47
ボタンを押したときに描画できても、ボタンを押して描画された後、他のウィンドウの後ろにまわして再度表示すると線が消えますよね?
描画は Paint イベントで行ってください。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-08-08 09:36
おはようございます。
返事遅れてごめんなさい。 囚人さん、田中一郎さん、アドバイスありがとうございます。
System.Drawing.GraphicsからPaintに変更するのは膨大の作業になるので...(^_^;)
適切なイベントってタイマーとかですかね、いい方法がないでしょうかね... Form1.Refresh()すると消えてしまいます。 タイマー以外のイベントはないでようか? 宜しくお願い致します。 | ||||||||
|
投稿日時: 2006-08-08 10:01
通常、再描画が必要な時はPaintイベントが発生します。
これでいいんじゃないですか? [ メッセージ編集済み 編集者: 一郎 編集日時 2006-08-08 10:02 ] | ||||||||
|
投稿日時: 2006-08-08 10:25
一郎さん、アドバイスありがとうございます。
ごめんなさい、できました。 そのとおりでした。 ありがとうございました。 [ メッセージ編集済み 編集者: gen 編集日時 2006-08-08 10:41 ] |
1