C 開發WinForm窗體間傳值的4種常用方法

2021-06-14 11:45:08 字數 1630 閱讀 4831

傳值是單向的(不可以互相傳值),在例項化時直接傳值給子窗體,實現簡單,最為常用

form2.cs

int intvalue;

string strvalue;

public form2 ()

public form2 (int value1, string value2)

form1.cs

int a = 10;

string b = "this is a test";

form2 frm = new form2(a, b);

frm.show();

這樣就把 form1 的 a b 兩個變數的值傳遞進了 form2 中。a b 也可以為文字框的值等。

定義公用public 靜態static 變數,傳值是雙向的,實現簡單

在一公用類裡定義乙個公用靜態變數

form1.cs 賦值,呼叫

以上靜態變數定義好後,可以在乙個窗體中進行賦值,在其他窗體取得值進行使用。

借助公有屬性傳值,類似上面的公有靜態變數傳值,沒有建構函式實現起來方便,但較安全

form2.cs

在窗體form2中定義乙個公有屬性txtvalue,獲取和設定textbox1的文字值

public string txtvalue

set

}

form1.cs

在窗體form1中呼叫,並傳值進去或傳回值

form2 frm = new form2();

frm.txtvalue = "this is a test"; //給form2的textbox1賦值

frm.show();

this.text = frm.txtvalue; //form2視窗關閉後取得form2中textbox1文字框的值給form1的標題

實現簡單,靈活

form2.cs

form2例項化時,透過show(this)方法的引數設定 owner 窗體,然後在form2裡將this.owner例項化乙個form1,此時即可在form2中呼叫form1裡面的公有變數

form1 frm1 = (form1)this.owner;

messagebox.show(frm1.strvalue.tostring()); //取到form1的值是1

frm1.strvalue = "透過form2給form1變數賦值"; //給form1的strvalue賦值

form1.cs

在窗體form1中定義乙個公有變數strvalue

public string strvalue = "form1 初使值";
在例項化form2時透過show方法把form1指定給form2的owner

form2 frm2 = new form2();

frm2.showdialog(this);

WinForm窗體間傳值

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

winform窗體間傳值

推薦使用第6與第7方法 1.通過建構函式 特點 傳值是單向的 不可以互相傳值 實現簡單 實現 如下 在窗體form2中 int value1 string value2 public form2 int value1 string value2 在窗體form1中這樣呼叫 new form2 111...

WinForm窗體間傳值

1.通過建構函式 特點 傳值是單向的 不可以互相傳值 實現簡單 實現 如下 在窗體form2中 int value1 string value2 public form2 int value1 string value2 initializecomponent this.value1 value1 ...