描画した画像を消去する方法が理解できず苦悶してます。
PictureBox1.image=image.FromeFile("C:\vb.jeg")で描画した場合は
PictureBox1.image=Nothingで消せますが
なぜ、Graphics.Clear()で消せないのですか(そうした文法上の規則)
Graphicsオブジェクトを作成する描画方法としない方法では異なる
ということなのですか?
何かすっきりしなくて困ってます。お助けください。
paintイベントで描画した場合には、背景色で塗りつぶすことで
消しているように見せかけているということですか?
Graphics は色々な手段で手に入りますが、どうやって手に入れたものでしょうか? また、Clear を呼び出したのはどのタイミングでしょうか?(ボタン押したときとか、Paint イベントでとか)
// そもそも Clear は特定の色で塗りつぶすだけのメソッドなので、「画像を消す」と言われると違和感が。
取り敢えず、PictureBox.Image に Image を代入するのは、「描画する」ではなく「PictureBox に描画させる」という表現が正しいでしょう。
PictureBox は Image プロパティが設定されると再描画を行うようになっていて、その再描画時(OnPaint 辺り)には、BackColor で塗りつぶしてから Image プロパティに設定されている Image を DrawImage します(もちろん Image が Nothing なら DrawImage しない)。
このとき使用する Graphics オブジェクトは、引数 PaintEventArgs に用意されている Graphics プロパティです。
// 細かい実装は違う可能性があります。