2011-09-12 61 views
2

我有一個(問題?)我的應用程序的主要表單代碼變得非常大。因爲它是應用程序的主要部分,所以有很多事件處理程序。主窗體變得相當大。建議?

我真的不想使用部分類來分隔代碼的各個部分,因爲我可能只是使用區域。部分形式的類也不會出現在設計器中,通常只是令人困惑。

不太清楚該說些什麼才能說實話。該文件大約有1000行代碼,而我的其他所有類都是10-150行。我無法真正將行爲封裝到其他對象中,因爲大多數事件處理程序都會操作類的窗體或成員變量上的控件,因此需要大量的參數傳遞和混淆。

試圖想出一個可能的行動方案。我真的想將很多行爲封裝到其他類中,但問題是事件處理程序修改了私有控件和成員變量。這些類需要以某種方式訪問​​這些數據,但我寧願不僅僅向該類提供表單實例,並將所有的控件和成員數據公開。>

任何想法?

+0

我讚揚你的努力,以簡化你的代碼,我同意下面發佈的答案,但我只需要指出,1000行實際上並不是那麼多的代碼。我見過很多WinForms項目,其中*整個應用*中的所有代碼都在同一個表單類中。相比之下,即使是小型的,分解良好的課程,如果他們正在做一些複雜的事情,也可能會超過1000行。 –

回答

6
  1. 將其分解爲用戶控件。
  2. 確保表單中沒有任何與演示無關的內容(向用戶顯示,收集用戶輸入)。將所有數據訪問移出到不同的類中,並且對於業務邏輯也是如此。
2

通常,這是通過將Form的部分封裝到UserControls中來完成的,後者管理它們自己的內部事件/控件。 UserControl可以通過主窗體中的適當數據傳遞/實例化。

相關問題