Winform開發之窗體傳值

2022-09-16 15:57:11 字數 2304 閱讀 4838

winform的窗體之間的資料傳遞是開發的必備技術,下面介紹幾種典型的傳值方法

1、建構函式傳值,但這種方法是單向的(推薦)

上**,先傳值

1

private

void button2_click(object

sender, eventargs e)

2

接值,對了,這裡需要過載乙個form3的建構函式,然後將拿到的值顯示出來

1

public form3(string

canshu)

2

效果圖,就是這麼簡單

2、靜態變數傳值(不推薦)

可以將靜態變數申明在你需要的地方,比如乙個單獨類,或者form中,比如我們在這裡申明在form2中

public

static

string xvalue;

1

private

void button2_click(object

sender, eventargs e)

2

先給賦值,然後在form3中取值

1

public

form3()

2

效果圖上

3、通過共有屬性傳值

首先在要開啟的form中建立乙個共有屬性,然後在呼叫視窗賦值即可。比如下面form2啟動form3,即給form3的yvalue傳值

(1)在form3中定義共有屬性

1

public

string

yvalue

6set

710 }

(2)form2中啟動form3,並傳值

1

private

void button2_click(object

sender, eventargs e)

2

4、通過owner屬性傳值

(1)在呼叫者form2中申明乙個公有變數,並賦值,設定需要啟動的form3的owner

1

public

string

xvalue;

2private

void button2_click(object

sender, eventargs e)

3

(2)啟動窗體form3中取值

1

private

void form3_load(object

sender, eventargs e)

2

這種方法實際是將form2傳給了form3,因此form3可以取到form2的所有公有變數和屬性。

5、委託傳值(推薦)

委託傳值主要用在子窗體給父窗體傳值上,即上文的form3給form2傳值

(1)先在form3中申明委託

1

public

delegate

void puthandler(string

text);

2public puthandler puttexthandler;//

委託物件

3private

void button1_click(object

sender, eventargs e)

49 }

(2)在form2中繫結委託事件

注意:委託和事件是不一樣的,你最後乙個示例。

if (puttexthandler != null)

上面這樣做是有bug的。

最好的做法是,是先用臨時變數快取puttexthandler ;

然後在處理,

否則你判斷!=null成立

但是馬上在其他地方-=的話,程式就出錯了

-=你是不知道會由誰呼叫的

Winform開發之窗體傳值

winform的窗體之間的資料傳遞是開發的必備技術,下面介紹幾種典型的傳值方法 1 建構函式傳值,但這種方法是單向的 推薦 上 先傳值 private void button2 click object sender,eventargs e 接值,對了,這裡需要過載乙個form3的建構函式,然後將拿...

winform 窗體傳值

在form1中 我們要把乙個文字傳遞給form2窗體,假定為passtext public string passtext form1中還有個按鈕button1在其點選事件中有 private void button1 click object sender,eventargs e 在form2的物...

WinForm開發,窗體顯示和窗體傳值相關知識總結

以前對winform窗體顯示和窗體間傳值了解不是很清楚 最近做了一些winform開發,把用到的相關知識整理如下 a.winform中窗體顯示 顯示窗體可以有以下2種方法 form.showdialog方法 窗體顯示為模式窗體 form.show方法 窗體顯示為無模式窗體 2者具體區別如下 1.在呼...