我已经尝试过设置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);
}
答案 0 :(得分:2)
请注意,在Graphics
事件处理程序中创建Paint
对象没有意义。您应该使用Graphics
中的现有PaintEventArgs
对象。像这样更改你的代码,现在应该可以工作:
private void pbox_Paint(object sender, PaintEventArgs e)
{
Rectangle boardRect = pbox.ClientRectangle;
e.Graphics.FillRectangle(Brushes.Orange, boardRect);
}