Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
境界の色が違う複数の図形の塗りつぶし
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10691#CommentId22683
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2012/2/9 18:49:20
CreateGraphics は、基本的には使わないでください。
これで描画した結果は、次の再描画タイミングでは消去されるため、
描画された状態を維持するためには向いていません。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.creategraphics.aspx
》 CreateGraphics メソッドを通じて取得する Graphics オブジェクトは通常、
》 現在の Windows メッセージが処理された後には保持されません。
》 これは、このオブジェクトを使用して塗りつぶされたオブジェクトは、
》 次の WM_PAINT メッセージで消去されるためです。
PictureBox への描画結果を残しておきたい場合には、以下のいずれかの方法を使います。
(案1) New Bitmap で空のビットマップを作成し、Graphics.FromImage に対して描画した後、
そのビットマップを PictureBox の Image / BackgroundImage に割り当てる。
(案2) PictureBox の Paint イベントで、e.Graphics に対して、毎回再描画する。
(Paint は、再描画が必要になった場合にそれを知らせるためのイベントです)