2012-10-07 48 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使用此代碼

相關問題