我真的不知道該怎麼稱呼這個問題。以相同的形式從單獨的usercontrols調用方法
假設我有一個Windows窗體應用程序。 GUI足夠複雜,需要兩個自定義用戶控件「LeftSide」和「Rightside」,每個控件都由各種按鈕,標籤以及甚至另一個自定義用戶控件組成。
我的問題:
我在「Rightside」控件的範圍內。我如何從「Leftside」控件調用一個方法?
我使用Visual Studio 2008
我真的不知道該怎麼稱呼這個問題。以相同的形式從單獨的usercontrols調用方法
假設我有一個Windows窗體應用程序。 GUI足夠複雜,需要兩個自定義用戶控件「LeftSide」和「Rightside」,每個控件都由各種按鈕,標籤以及甚至另一個自定義用戶控件組成。
我的問題:
我在「Rightside」控件的範圍內。我如何從「Leftside」控件調用一個方法?
我使用Visual Studio 2008
最簡單的辦法就是讓在RightSide
控制LeftSide
類型的屬性,然後將其設置爲在表單設計的LeftSide
實例。
然後,您可以調用該屬性的公共方法。
但是,這是糟糕的設計。
每個用戶控件應該是一個獨立的塊,不需要直接與其他用戶控件交互。
您應該考慮重組您的表單。
完全等效標準WF控制:如何保持一個文本框的文本同步與另一:
private void textBox1_TextChanged(object sender, EventArgs e) {
textBox2.Text = textBox1.Text;
}
必要因素:當一些有趣的事情發生了被解僱的用戶控件的事件。和公共財產。
Followup問題:我能否將有問題的方法從「Leftside」移動到父表單本身,使「Leftside」和「Rightside」可以調用該方法? – 2010-07-07 20:20:17
@Raven:是的。使其成爲公共方法,然後編寫'((MyParentFormClass)FindForm())。SomeMethod()' – SLaks 2010-07-07 21:04:14