窗體間傳遞複雜的資料

2022-01-24 02:08:14 字數 1083 閱讀 6539

之前在學校的時候沒有認真的學習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 子窗體,用...