2014-04-14 67 views
0

設置主窗體屬性的最佳做法我有一個主窗體。 我的應用程序的邏輯是巨大的。我的應用程序中有大約100個模塊。 在一些模塊中,我需要設置主窗體控件的一些屬性。.NET:從模塊

我覺得調用類似

Public Module SomeStuff 

    Public Sub DoSomething 
     frmMain.MyControl.Location = ... 
    End Sub 

End Module 

...非常髒。

但是,我無法將所有內容從模塊移動到主窗體中。

有沒有最佳實踐來處理這種情況?

編輯:我的代碼有效,但它感覺很難看。

謝謝!

+1

我至少會在frmMain中聲明所有的函數,如'DoSomething()'(如果這是他們所做的)。如果你正在使用所有的模塊和默認表單實例,我沒有看到太多的OOP,這就是爲什麼你有時會覺得你的設計受到限制。 – djv

回答

2

有許多用於從一個模塊中的窗體上設置屬性,包括選擇:

  • 跑過形式或表單控件的實例,以將被設置
  • 從返回的值的模塊的功能一個模塊的功能,以在窗體上

表被設定爲一個參數

表單或特定表單控件可以作爲參數傳遞給設置屬性的模塊。這樣您就不會綁定到表單的靜態實例。然而,你的功能可能仍然與UI緊密結合,這可能使它們更難以進行單元測試。

返回值

爲了保持業務邏輯和UI之間的分離,你可以返回需要通過結構,類或字典應用到表單中的值。然後定義一個方法或函數將值綁定到表單控件。