2011-01-12 3 views
0

私は、生成されたビットマップがロードされたフォームを持っています。ユーザーがボタンを押して表示されるグラフィックを変更できるようにしたい。私の質問は、現在表示されているビットマップを削除する方法は?WinFormsのカスタムコントロールからビットマップを削除するにはどうすればよいですか?

編集:ビットマップは(フォーム上に直接ではなく)ImageBoxにロードされて親切にハンスアンパッサンにより提案されたc# panel for drawing graphics and scrolling

おかげ

答えて

2

同じ原則として、レッピーの答え。あなたの代わりにImageBox.Imageプロパティを設定する必要があることを除い:

myImageBox.Image = null; 


これが原因(Hans's answer to your previous questionから抜粋)は以下のコードで動作します:あなたはnullにコントロールのImageプロパティを設定すると

protected override void OnPaint(PaintEventArgs e) { 
    e.Graphics.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y); 
    if (mImage != null) e.Graphics.DrawImage(mImage, 0, 0); 
    base.OnPaint(e); 
} 

、プロパティ設定ツールは、コントロールを強制的に再描画します(this.Invalidate();)。コントロールを描画するメソッドOnPaintが描画する前にmImage != nullを検証するため、描画自体は行われません。

+0

パーフェクト。ありがとうございました。 –

1

次は動作するはずです:

Form.BackgroundImage = null; 
+0

残念ながら、ビットマップがフォームに直接ロードされないため、残念ながらこれは機能しません。上記の私の編集をご覧ください。ありがとう。 –

関連する問題