2012-10-07 45 views
2

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

我试过了什么?

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

DoubleBuffered = true; 

EDIT 1

我也有一个WPF标签上控制。我很好奇这是否会导致闪烁。

+1

你有什么只是改变在你注意到闪烁之前?你有很多线程吗?你有没有对SizeChanged事件做一些操作?任何这样的事情?我的猜测是,调整大小会最终导致行动和反应,最终直接或间接地运行你的一段代码,这些代码应该是线程化的,效率化的或者以其他方式被移除和处理的。 – SimpleVar

+0

我确实启动了几个线程来加载后台数据,但它只发生在每个用户的交互。我仔细检查了整个解决方案,并没有发现任何与大小事件相关的代码。我将不得不深入挖掘,看看我能找到什么。我有额外的信息,我正在编辑主要问题。 – meanbunny

+0

这是一个新的应用程序?如果是这样,我想知道你为什么试图混合赢取窗体和WPF,而不是跳转到WPF。如果你删除WPF选项卡会发生什么?我怀疑这是否是问题,但至少会从你的脑海中消除这种可能性。你的元素如何安排?通过固定职位,还是对接? – Phil

回答

0

有办法解决这个问题的夫妇:

对于形调整活动(onResizeBegin &上ResizeEnd)使用下面的代码:

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

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

- 形式Contstructor使用此代码

相关问题