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

时间:2011-01-12 10:21:38

标签: c# winforms controls bitmap panel

我有一个加载了生成的位图的表单。我希望用户能够按下按钮并更改显示的图形。我的问题是,如何删除当前显示的位图?

编辑:位图正在加载到ImageBox上(而不是直接放在表单上)这是由Hans Passant c# panel for drawing graphics and scrolling提出的{/ 3}

由于

2 个答案:

答案 0 :(得分:2)

与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

答案 1 :(得分:1)

以下内容应该有效:

Form.BackgroundImage = null;