我开发了一个使用Main表单和TabControl的WinForms应用程序。在选项卡控件上有几个使用库中控件的选项卡。我最近注意到,在调整应用程序大小时,整个应用程序都像疯了一样闪烁。
我尝试了什么?
我尝试将以下代码添加到表单和其中一个控件的_load事件中。然后我通过选项卡切换到该控件并尝试调整大小但没有区别,闪烁仍然非常糟糕。
DoubleBuffered = true;
编辑1
我在一个标签上也有WPF控件。我很好奇是否会引起闪烁。
答案 0 :(得分:0)
有几种方法可以解决这个问题:
对于表单resize Events(onResizeBegin& on ResizeEnd),请使用以下代码:
protected override void OnResizeBegin(EventArgs e)
{
SuspendLayout();
base.OnResizeBegin(e);
}
protected override void OnResizeEnd(EventArgs e)
{
ResumeLayout();
base.OnResizeEnd(e);
}
- 以Contstructor的形式使用此代码:
this.SetStyle( ControlStyles.AllPaintingInWmPaint, true );
this.SetStyle( ControlStyles.UserPaint, true );
this.SetStyle( ControlStyles.OptimizedDoubleBuffer, true );
this.SetStyle( ControlStyles.ResizeRedraw, true );