之前在學校的時候沒有認真的學習winform的開發,現在就要狂補下了。
1、建構函式的方法:
不解釋,先看**:
public form2(string msg)
然後再form3中就新增乙個textbox和乙個button
private void button1_click(object sender, eventargs e)
2、定義乙個公共屬性,這個我就不測試了,以前是也有用過就是了(只是當時是用公共字段)
public string msg}
3、委託與事件傳遞
先定義乙個類,具體先看**:
public delegate void textchangehandler(string s);public class callobject
}}
然後再子窗體新增乙個建構函式,以接受結果物件:
public form2(callobject cov) : this()
第三步:在父窗體建立子窗體,並訂閱cresult事件:
private void button1_click(object sender, eventargs e)private void eventresultchanged(string s)
最後,在子窗體中改變選擇,通過callback傳遞給父窗體
private void radiobutton1_checkedchanged(object sender, eventargs e)private void radiobutton2_checkedchanged(object sender, eventargs e)
private void radiobutton3_checkedchanged(object sender, eventargs e)
private void button1_click(object sender, eventargs e)
ok
窗體間傳遞複雜資料
這些辦法我感覺都不是特別好,會導致父窗體與子窗體耦合過於緊密,對任何乙個窗體的修改需要重新編譯另外乙個窗體。根據 依賴倒置 的原則,通過引入乙個結果物件,就可以避免這種緊耦合,同時也可以傳遞任意複雜的資料。如果需要在子窗體中改變父窗體狀態,也可以在這個結果物件中定義委託與事件來達到目的。我在這裡給出...
窗體間傳遞複雜資料
這些辦法我感覺都不是特別好,會導致父窗體與子窗體耦合過於緊密,對任何乙個窗體的修改需要重新編譯另外乙個窗體。根據 依賴倒置 的原則,通過引入乙個結果物件,就可以避免這種緊耦合,同時也可以傳遞任意複雜的資料。如果需要在子窗體中改變父窗體狀態,也可以在這個結果物件中定義委託與事件來達到目的。我在這裡給出...
WinForm 窗體間傳遞資料
子窗體.cs方法一 在子窗體中自定義乙個建構函式,引數型別是主窗體,當要顯示子窗體的時候,就用這個建構函式來例項化子窗體,然後把this指標傳進去。如下 主窗體.cs public class frmmain form 子窗體.cspublic class frmcontrol form 子窗體,用...