C#在winform上重绘图形

时间:2011-01-12 12:03:32

标签: c# winforms bitmap

我通过图像框将一个位图加载到winform上。当我想要更新图像时,我会这样尝试:

imagebox.image = null;
draw();  //implements the drawing of the bitmap and assigns to the imagebox/winform

但是,这只有在我隐藏然后再显示表格时才有效?我怎么能绕过这个?

编辑:问题已解决。

3 个答案:

答案 0 :(得分:1)

您是否尝试在Invalidate(imagebox.Bounds);方法结束时拨打draw()

这应该强制重新绘制,因此您不必再隐藏并再次显示该表单。

答案 1 :(得分:1)

您应该查看此链接Bob Powell GDI+ FAQ。它对一些GDI基础知识有一些明确的指示,这个链接转到PictureBox绘图示例。

基本上你想要附加到ImageBox的Paint事件,并在每次想要重新绘制时调用Invalidate()。

答案 2 :(得分:1)

使图像属性设置器更智能。例如:

private Image mImage;

public Image Image {
    get { return mImage; }
    set { 
        mImage = value;
        Invalidate();
    }
}

现在可见图像会自动刷新。