画的内容不会留下来

时间:2013-04-04 00:21:37

标签: c# winforms graphics

我已经尝试过设置ResizeRedraw,但它没有在调整大小时导致绘制事件,所以我开始在myForm_Resize中失效。现在,当我调整大小时,我看到我的背景正在被重新绘制,但是一旦我停止调整大小,我的控件就会重新绘制其背景颜色。我做错了什么?

private void pbox_Paint(object sender, PaintEventArgs e) {
    Rectangle boardRect = pbox.ClientRectangle;
    using (Graphics g = pbox.CreateGraphics()) {
        g.FillRectangle(Brushes.Orange, boardRect);
    }
}

private void myForm_Resize(object sender, EventArgs e) {
    this.Invalidate(true);
}

1 个答案:

答案 0 :(得分:2)

请注意,在Graphics事件处理程序中创建Paint对象没有意义。您应该使用Graphics中的现有PaintEventArgs对象。像这样更改你的代码,现在应该可以工作:

private void pbox_Paint(object sender, PaintEventArgs e) 
{
      Rectangle boardRect = pbox.ClientRectangle;
      e.Graphics.FillRectangle(Brushes.Orange, boardRect);
}