VBの描画方法で困った


やきべん  2009-10-22 19:03:48  No: 142695

描画した画像を消去する方法が理解できず苦悶してます。

PictureBox1.image=image.FromeFile("C:\vb.jeg")で描画した場合は
PictureBox1.image=Nothingで消せますが
なぜ、Graphics.Clear()で消せないのですか(そうした文法上の規則)

Graphicsオブジェクトを作成する描画方法としない方法では異なる
ということなのですか?
何かすっきりしなくて困ってます。お助けください。

paintイベントで描画した場合には、背景色で塗りつぶすことで
消しているように見せかけているということですか?


Hongliang  2009-10-22 22:59:19  No: 142696

Graphics は色々な手段で手に入りますが、どうやって手に入れたものでしょうか?  また、Clear を呼び出したのはどのタイミングでしょうか?(ボタン押したときとか、Paint イベントでとか)
// そもそも Clear は特定の色で塗りつぶすだけのメソッドなので、「画像を消す」と言われると違和感が。

取り敢えず、PictureBox.Image に Image を代入するのは、「描画する」ではなく「PictureBox に描画させる」という表現が正しいでしょう。
PictureBox は Image プロパティが設定されると再描画を行うようになっていて、その再描画時(OnPaint 辺り)には、BackColor で塗りつぶしてから Image プロパティに設定されている Image を DrawImage します(もちろん Image が Nothing なら DrawImage しない)。
このとき使用する Graphics オブジェクトは、引数 PaintEventArgs に用意されている Graphics プロパティです。
// 細かい実装は違う可能性があります。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加