winform的窗體之間的資料傳遞是開發的必備技術,下面介紹幾種典型的傳值方法
1、建構函式傳值,但這種方法是單向的(推薦)
上**,先傳值
1接值,對了,這裡需要過載乙個form3的建構函式,然後將拿到的值顯示出來private
void button2_click(object
sender, eventargs e)
2
1效果圖,就是這麼簡單public form3(string
canshu)
2
2、靜態變數傳值(不推薦)
可以將靜態變數申明在你需要的地方,比如乙個單獨類,或者form中,比如我們在這裡申明在form2中
publicstatic
string xvalue;
1先給賦值,然後在form3中取值private
void button2_click(object
sender, eventargs e)
2
1效果圖上public
form3()
2
3、通過共有屬性傳值
首先在要開啟的form中建立乙個共有屬性,然後在呼叫視窗賦值即可。比如下面form2啟動form3,即給form3的yvalue傳值
(1)在form3中定義共有屬性
1(2)form2中啟動form3,並傳值public
string
yvalue
6set
710 }
14、通過owner屬性傳值private
void button2_click(object
sender, eventargs e)
2
(1)在呼叫者form2中申明乙個公有變數,並賦值,設定需要啟動的form3的owner
1(2)啟動窗體form3中取值public
string
xvalue;
2private
void button2_click(object
sender, eventargs e)
3
1這種方法實際是將form2傳給了form3,因此form3可以取到form2的所有公有變數和屬性。private
void form3_load(object
sender, eventargs e)
2
5、委託傳值(推薦)
委託傳值主要用在子窗體給父窗體傳值上,即上文的form3給form2傳值
(1)先在form3中申明委託
1(2)在form2中繫結委託事件public
delegate
void puthandler(string
text);
2public puthandler puttexthandler;//
委託物件
3private
void button1_click(object
sender, eventargs e)
49 }
注意:委託和事件是不一樣的,你最後乙個示例。
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.在呼...