我有一个简单的WinForms应用程序,它绘制一些彩色矩形。 但是,当窗口调整大小时,它没有正确更新。
已经尝试覆盖OnResize
protected override void OnResize(EventArgs e)
{
repaintingMyStuffHere();
}
答案 0 :(得分:1)
试试这个:
protected override void OnResize(EventArgs e)
{
this.Invalidate();
base.OnResize(e);
}
protected override void OnPaint(PaintEventArgs e) {
{
base.OnPaint(e);
repaintingMyStuffHere(e.Graphics);
}
如果您仍有问题,请尝试设置以下控制方式:
public MyClass() {
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.ResizeRedraw |
ControlStyles.UserPaint |
ControlStyles.ResizeRedraw,
true);
}
如果您仍然有任何问题,请发布您的重新绘制MyStuffHere方法。
答案 1 :(得分:0)
要使表单/组件呈现属性并帮助提高性能,您需要首先覆盖OnResize()
方法,使其使表单/组件无效:
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
this.Invalidate();
}
然后(可选,但建议减少闪烁)将表单/组件DoubleBuffered
属性设置为true:
this.DoubleBuffered = true;