2011-05-19
現在、VB.NETでグラフを表示するプログラムを作成しています。
PictureBoxに線や文字を書きこんで表示させるのですが、
タイマーで定期的に更新する際に、画面がちらつく状態になってしまいました。
********************************************
'PictureBoxと関連付け
Dim pic As Graphics = PictureBox1.CreateGraphics()
'画面クリア
pic.Clear(Color.White)
ここに書込み処理が入ります。
*********************************************
ピクチャーボックスにダイレクトに書込みをしていたため、
新しいグラフの描画の前に画面をクリアしていたのですが、それがちらつきの原因でした。
そこで、ちらつかないようにバッファに書込みを行いそのデータをPictureBox
に表示させるように修正しました。
*********************************************
'グラフ用のバッファエリアを作成
Dim bmpbuf As Bitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)
Dim pic As Graphics = Graphics.FromImage(bmpbuf)
'画面クリア
pic.Clear(Color.White)
ここに書込み処理が入ります。
'バッファからPictureBoxにコピー
Me.PictureBox1.Image = bmpbuf
*********************************************
変更点は、Pictuirebox1と同じサイズのビットマップを作成し、
ビットマップと関連付けをしたことと、
描画が終わった後PictureBoxにコピーしたことです。
これだけで、ちらつきなくグラフが更新されるようになります。
セ記事を書く
セコメントをする