如何从WinForms中的自定义控件中删除位图?

如何从WinForms中的自定义控件中删除位图?

问题描述:

我有一个加载了生成的位图的窗体。我希望用户能够按下按钮并更改显示的图形。我的问题是,如何删除当前显示的位图?如何从WinForms中的自定义控件中删除位图?

编辑:位图加载到一个ImageBox(不直接到形式),这是好心由Hans帕桑特建议c# panel for drawing graphics and scrolling

感谢

同原则作为leppie的答案。除了你需要设置ImageBox.Image属性来代替:

myImageBox.Image = null; 


这工作,因为下面的代码(从Hans's answer to your previous question摘录):

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); 
} 

当控件的Image属性设置为null,属性设置器强制控件重新绘制自己(this.Invalidate();)。重新绘制时,不会绘制图像,因为负责绘制控件的OnPaint方法会在绘制之前验证mImage != null

+0

完美。谢谢。 – 2011-01-12 10:53:21

下面应该工作:

Form.BackgroundImage = null; 
+0

嗨,不幸的是这不工作,因为位图不直接加载到窗体。请参阅我上面的编辑。谢谢。 – 2011-01-12 10:32:49