Visual C 中實現窗體間的資料傳遞 1

2021-08-21 23:02:43 字數 2644 閱讀 4720

乙個稍微複雜一點的程式一般都有二個或者更多的窗體。有時在程式設計中,資料不僅要在同乙個窗體中傳遞,還要在窗體間傳遞, 這種傳遞是主窗體與從窗體之間資料的互相傳遞。從本文開始,我們將列舉不同窗體間資料傳遞的四種情況,和用visual c#實現這四種情況的具體方法。下面先介紹用visual c#實現窗體間傳遞資料中第一種情況——從主窗體向從窗體傳遞字串。在閱讀完本文後,你還嘗試一下 利用此方法在窗體間傳送數值等資料。

本文中程式設計、除錯、執行的軟體環境:

windows2000 伺服器版

visual studio.net正式版,.net framework sdk版本號3705

實現步驟:

1.啟動visual studio .net

2.選擇選單【檔案】|【新建】|【專案】後,彈出【新建專案】對話方塊

3.將【專案型別】設定為【visual c#專案】

4.將【模板】設定為【控制台應用程式】

5.在【名稱】文字框中輸入【vc#中不同窗體資料傳遞方法01】

6.在【位置】的文字框中輸入【e:\vs.net專案】,然後單擊【確定】按鈕,這樣vc#中不同窗體資料傳遞方法01專案就建立完成了

7.把visual studio.net的當前視窗切換到【form1.cs(設計)】視窗,並從【工具箱】中的【windows窗體】選項卡中拖入下列元件到【form1.cs(設計)】窗 體中,並執行相應操作:

· 二個textbox元件,用以輸入向form2窗體傳送的資料

· 二個label元件

· 乙個button元件,名稱為button1,並在拖入【form1.cs(設計)】窗體後,雙擊它,則visual stuido .net產生其click事件對應的處理**。

8.把visual studio .net的當前視窗切換到【form1.cs】視窗,即:form1.cs的**編輯視窗。並用下列**替換替代系統產生的initializecomponent過程。

private void initializecomponent ( )

) ;this.name = "form1" ;

this.text = "form1" ;

this.load += new system.eventhandler ( this.form1_load ) ;

this.resumelayout ( false ) ;

}此時,vc#中不同窗體資料傳遞方法01專案的主窗體form1的設計介面就完成了,具體如圖1所示:

圖1:vc#中不同窗體資料傳遞方法01專案主窗體設計介面

9.把visual studio.net的當前視窗切換到form1.cs的**編輯視窗,並用下列**替換form1.cs中button1元件的click事件對應的處理**。

private void button1_click ( object sender , system.eventargs e )

10.選擇選單【專案】|【新增windows窗體】後,彈出【新增新項-vc#中不同窗體資料傳遞方法01】對話方塊。在此對話方塊中的【名稱(n):】文字框中輸入【f orm2】後,單擊【開啟】按鈕,則在vc#中不同窗體資料傳遞方法01專案中新增了乙個新的窗體,名稱為【form2】。

11.把visual studio.net的當前視窗切換到【form2.cs(設計)】視窗,並從【工具箱】中的【windows窗體】選項卡中拖入下列元件到【form2.cs(設計)】窗 體中,並執行相應操作:

· 二個textbox元件,用以顯示從form1傳送來的字串資料

· 二個label元件

· 乙個button元件,名稱為button1,並在拖入【form2.cs(設計)】窗體後,雙擊它,則visual stuido .net產生其click事件對應的處理**。

12.把visual studio.net的當前視窗切換到form2.cs的**編輯視窗,並在定義form2**的後部新增下列**,下列**是定義二個字串變數,用以接收從form1傳送來的 字串資料:

private string str1 , str2 ;

13.並用下列**替換系統產生的form2對應的**:

public form2 ( string senddata01 , string senddata02 )

14.用下列**替換form2.cs中的由visual studio .net系統產生的initializecomponent過程:

private void initializecomponent ( )

) ;this.name = "form2" ;

this.text = "form2" ;

this.resumelayout ( false ) ;

}15.用下列**替換form2.cs中button1元件click事件對應的處理**,下列**的作用是把從form1窗體中接收來的字串資料通過同樣的方式顯示出來:

private void button1_click ( object sender , system.eventargs e )

16.至此,在上述步驟都正確完成,並全部儲存後,vc#中不同窗體資料傳遞方法01專案的全部工作就完成了。圖02是vc#中不同窗體資料傳遞方法01程式的執行 介面。其中form2中顯示出來的字串就是從主窗體中傳遞過去的。

圖02:vc#中不同窗體資料傳遞方法01程式的執行介面

總結

VisualC 中MDI窗體初步

在vb中做 mdi窗體很簡單。在c 裡就沒有這個輕鬆了,不過還是很方便的。首先在c 裡新增乙個窗體,命名為mdimain,將其i dicontainer設定成true,這樣mdi主窗體就建立了。然後再新增新窗體,命名為mdichild。現在執行程式,會發現只執行了mdimain這個主窗體。呵呵因為我...

委託 Winform實現窗體間的傳值

軟體介面如上所示 點選接收窗體實現開啟傳送窗體,傳送窗體點選 傳送 即可傳送到接收窗體,可以實現窗體間的傳值。接收窗體的主要 開啟傳送窗體 private void btnopen click object sender,eventargs e 值傳給窗體的文字框 void getvalue str...

子窗體與父窗體間的傳值 用委託實現

這2天因為需要做winform程式,需要把asp的乙個庫存異動功能模組轉成winform程式,所以就遇見了窗體之間傳值的這種情況 以前在肇慶上班的時候也做過這樣的情形,當時還是初始做winfom程式,主要是機器通訊方面的,和單件模式聯絡比較密切。時隔差不多4個月,真的快忘記了,居然有開始做這個,所以...