利用Delegate窗體間傳值

2022-01-31 06:52:32 字數 1771 閱讀 8637

我們知道event的第二個引數eventargs,可以用來在處理事件觸發時,傳遞資料,今天就用它在窗體間傳值。

demo是winform程式,就是兩個窗體,parentfrm和childfrm。

首先定義乙個類mycustomeventargs繼承自eventargs

code

public

class

mycustomeventargs : eventargs  

//事件引數類

public

string

strset}}

然後宣告乙個用來處理事件的delegate

code

public

delegate

void

mydelegate(

object

sender, mycustomeventargs e);

再定義乙個事件

code

public

static

event

mydelegate myevent;(可以不是靜態的)

在parentfrm的load裡寫上

code

myevent 

+=new

mydelegate(parentfrm_myevent);

在childfrm的load裡寫上

code

parentfrm.myevent 

+=new

mydelegate(childfrm_myevent);

childfrm裡有個handler

code

void

childfrm_myevent(

object

sender, mycustomeventargs e)

然後就可以實現我們想要的效果了。

源**:

parentfrm,裡面有乙個button,乙個textbox。

code

namespace

codeprojectwindowthread

private

void

parentfrm_load(

object

sender, eventargs e)

void

parentfrm_myevent(

object

sender, mycustomeventargs e)

private

void

button1_click(

object

sender, eventargs e)

}public

class

mycustomeventargs : eventargs  

//事件引數類

public

string

strset}}

childfrm**,裡面有乙個textbox。

code

namespace

codeprojectwindowthread

private

void

childfrm_load(

object

sender, eventargs e)

void

childfrm_myevent(

object

sender, mycustomeventargs e)}}

單擊parentfrm窗體的button,childfrm窗體裡的textbox會顯示parentfrm窗體裡的textbox的值。

WinForm窗體間傳值

form1 主窗體 namespace firstdlg public string textstored set private void button1 click object sender,eventargs e private void form1 load object sender,e...

(C )WinForm窗體間傳值

1.通過建構函式 特點 傳值是單向的 不可以互相傳值 實現簡單 實現 如下 在窗體form2中 int value1 string value2 public form2 int value1 string value2 在窗體form1中這樣呼叫 new form2 111 222 show 這樣...

(C )WinForm窗體間傳值

1.通過建構函式 特點 傳值是單向的 不可以互相傳值 實現簡單 實現 如下 在窗體form2中 int value1 string value2 public form2 int value1 string value2 在窗體form1中這樣呼叫 new form2 111 222 show 這樣...