0

我已经尝试设置 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);
}
4

1 回答 1

2

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

private void pbox_Paint(object sender, PaintEventArgs e) 
{
      Rectangle boardRect = pbox.ClientRectangle;
      e.Graphics.FillRectangle(Brushes.Orange, boardRect);
}
于 2013-04-04T00:47:27.853 回答