窗體間的傳值

2022-06-13 13:30:17 字數 1914 閱讀 3708

窗體間的傳值的幾種方法:

第一種方法:

1,新建兩個窗體,乙個父窗體parentfrm,乙個是子窗體childfrm,分別在兩個窗體上都加入乙個textbox標籤和乙個button標籤,分別命名為txtmsg和btnsend。(最簡單,但直接對子窗體的屬性進行操作,這樣不安全)。

2,**如下所示:

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.data;

using

system.drawing;

using

system.linq;

using

system.text;

using

system.threading.tasks;

using

system.windows.forms;

namespace

窗體間傳值

//給子窗體寫乙個屬性

public

parentfrm()

private

void parentfrm_load(object

sender, eventargs e)

private

void btnsendmsg_click(object

sender, eventargs e)

}}

第二種方法:

在子窗體中寫乙個方法,來給子窗體傳遞值。簡單的物件導向的思路

子窗體中的**如下:

namespace窗體間傳值

publicchildfrm()

父窗體的**如下:

namespace

窗體間傳值

//給子窗體寫乙個屬性

public

parentfrm()

private

void parentfrm_load(object

sender, eventargs e)

private

void btnsendmsg_click(object

sender, eventargs e)

}}

第三種方法:

前兩種方法有很多看弊端,兩個物件間是直接耦合的,如果刪除某乙個窗體,則就會出錯,那麼我們要實現兩個窗體間的解耦。使用委託

子窗體**如下(子窗體**和方法二一樣):

namespace

窗體間傳值

public

childfrm()

private

void childfrm_load(object

sender, eventargs e)

}}

父窗體**如下:

namespace

窗體間傳值

//定義乙個無返回值的委託 action無返回值 funck有返回值

public

parentfrm()

private

void parentfrm_load(object

sender, eventargs e)

private

void btnsendmsg_click(object

sender, eventargs e)

aftermsgsend(

this.txtmsg.text);//

將父窗體textbox中的內容傳給委託

#endregion

} }

}

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 這樣...