2

我开发了一个使用主窗体和 TabControl 的 WinForms 应用程序。选项卡控件上有几个选项卡,它们使用库中的控件。我最近注意到,在调整应用程序的大小时,整个应用程序会疯狂地闪烁。

我尝试了什么?

我尝试将以下代码添加到表单和其中一个控件的 _load 事件中。然后我通过选项卡切换到该控件并尝试调整大小但没有区别,闪烁仍然非常糟糕。

DoubleBuffered = true; 

编辑 1

我在一个选项卡上也有 WPF 控件。我很好奇这是否也会导致闪烁。

4

1 回答 1

0

有几种方法可以解决这个问题:

对于表单调整大小事件(onResizeBegin & on ResizeEnd),使用以下代码:

protected override void OnResizeBegin(EventArgs e) 
 {
    SuspendLayout();
    base.OnResizeBegin(e);
 }

protected override void OnResizeEnd(EventArgs e) 
 {
    ResumeLayout();
    base.OnResizeEnd(e);
 }

- 以构造函数的形式使用此代码

this.SetStyle( ControlStyles.AllPaintingInWmPaint, true );
this.SetStyle( ControlStyles.UserPaint, true );
this.SetStyle( ControlStyles.OptimizedDoubleBuffer, true );
this.SetStyle( ControlStyles.ResizeRedraw, true );
于 2013-07-10T21:24:05.530 回答