2013-01-15 32 views
0

VB.NET/Win窗體/ VS 2008UI滯後。調整我的應用程序窗口需要maxes出cpu

我正在研究一些軟件,我很滿意迄今爲止的UI設計..非常結構化,易於閱讀..但是,當我調整窗口的大小,這是非常「滯後」。當我觀察任務管理器時,調整窗口大小時CPU峯值達到25%(利用核心的100%)(未調整大小時爲0%)。如果是這樣的話,它將以每秒4幀的速度重新繪製窗口。

這是一個相當複雜的用戶界面,但沒有任何意義。我不覺得它應該像這樣運行。

我的佈局層次結構看起來是這樣的:

<FORM> 
    <TABCONTROL> (first tab example, subsequent tabs follow the same control hierarchy) 
     <SPLITCONTAINER> 
      <PANEL 1> 
       <DATAGRIDVIEW /> 
      </PANEL 1> 
      <PANEL 2> 
       <TABCONTROL> 
        <TABCONTROL> 
         <TABCONTROL> 
          Lots of data fields in these tabs 
         </TABCONTROL> 
        </TABCONTROL> 
       </TABCONTROL> 
      </PANEL 2> 
     </SPLITCONTAINER> 
    </TABCONTROL> 
</FORM> 

一切都停靠到其父。這一切都非常流暢。因此,分離器在主選項卡中停靠(填充模式),Tabcontrols在其他選項卡控件中對接(填充模式)等。

我認爲它只是在系統上施加大負載以嘗試重新計算控件位置窗口被調整大小。

對於我完全可以重新設計軟件的能力有什麼建議?

+0

你處理任何調整事件或任何事件?如果是的話,請發佈處理vb.net代碼 – Dhawalk

+0

@Dhawalk根本沒有。 – user1003916

+1

不幸的是,這對於WinForms應用程序來說是正常的,但是,這應該有所幫助:[Suspend/Resume Layout](http://stackoverflow.com/questions/2353381/prevent-window-redraw-when-resizing-c-sharp-windows -forms) – xfx

回答

1

不幸的是,這對WinForms應用程序來說是正常的,特別是那些有很多嵌套容器的應用程序。

但是,有一個「解決辦法」,這涉及調用掛起和恢復佈局表單時需要重新調整,並已調整後:

Prevent window redraw when resizing c# windows forms

相關問題