防犯や防災時に役立グッズが多数 「備えて安心グッズのお店」
お得なわけあり商品を多数取り揃え 「訳ありお得館」
厳選デジタルグッズのお店 「おもしろデジモノのデジモノ屋」
厳選食品お取り寄せのお店 「まんぷく屋」
美と健康を考えるお店 「La beaut」
グラフ表示でのちらつきの解消方法 ― 2011年05月19日 17時39分40秒
現在、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にコピーしたことです。
これだけで、ちらつきなくグラフが更新されるようになります。
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にコピーしたことです。
これだけで、ちらつきなくグラフが更新されるようになります。
コメント
トラックバック
このエントリのトラックバックURL: http://n-box.asablo.jp/blog/2011/05/19/5870870/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。