如何从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
。
答
下面应该工作:
Form.BackgroundImage = null;
+0
嗨,不幸的是这不工作,因为位图不直接加载到窗体。请参阅我上面的编辑。谢谢。 – 2011-01-12 10:32:49
完美。谢谢。 – 2011-01-12 10:53:21