2009-07-30 32 views
0

這是我的場景... 我有一個winForm tabControl,每個選項卡上有不同的字段(每個選項卡都有不同的字段)。當用戶點擊「生成」按鈕時,它應該從tabControl的選項卡傳遞控件,以便被調用的函數可以根據傳遞的控件的信息創建電子郵件。每個選項卡是不同的電子郵件模板。該方法可以從4個不同的按鈕中調用,每個按鈕位於不同的tabControl頁面上,每個tabControl具有不同的字段。C#WinForm;將控件組傳遞給另一個類

我遇到的問題是我找不到一個體面的方式來調用/傳遞這些控件。由於它不知道什麼tabControl按鈕被按下,直到運行後,我想創建一個抽象方法來接受這些控件,因爲每個選項卡都有一組不同的控件。

任何想法?

回答

1

正如別人所說,你可以欺騙並嘗試使用

tabControl.Controls 

一個快速和骯髒的修復。

如果你想要一些將來可行的東西,以及向你展示一些更好的設計實踐,我會建議一個替代方案。創建一個EmailUserControlUserControl,其中包含電子郵件的所有表單字段。將該用戶控件放在選項卡上而不是所有單個字段中。然後在用戶控件上提供一個方法,用於生成期望的電子郵件,同時考慮所有字段,然後可以傳遞有關實際的電子郵件,而不是用於創建它的所有單個部分和部分。

當然,這種設計還有其他的改進,但這是一個很好的機會讓你的腳溼潤,嘗試一些更好的東西。當您對UserControl的想法更加滿意時,您會發現自己可以更好地改進控件的設計。 :)

+0

我在設計方面讓自己感到困惑。我爲每個選項卡創建了一個類,可以充當選項卡的「類」。我決定爲每個選項卡創建一個用戶控件,並使用戶控件的類作爲我剛剛描述的類。謝謝您的幫助! – user141594 2009-07-30 14:28:11