C#實現Winform間的資料互動的三種方法
使用.NET編寫winform程式,比較常見的一種情況就是如何實現Form間的資料互動,下面就簡單總結一下常見的幾種資料互動方式:
(1)修改子窗體的建構函式:簡單地說就是通過修改子窗體Form的建構函式,如下所示:
public Form2(string Para1, ArrayList List1, TextBox textBox1, Form. Form1)
{
InitializeComponent();
}
上面的例子中,為子窗體Form2新增了4個引數,分別是:字串Para1,字元陣列List1,文字控制元件textBox1和父
窗體Form1,下面簡單區分一下它們各自的特點:
<1> 字串:單向的值傳遞,在子窗體中不能通過修改此引數的值來間接改變父窗體中的資料。
<2> 字元陣列:引用型傳遞,可以通過將父子窗體中不同的成員變數指向相同的陣列,即可實現變更一方,同時更新
對方的資料。
<3> 控制元件: 引用型傳遞,可以通過修改該控制元件的資料來直接達到控制父窗體中該控制元件資料的目的。
<4> 窗體: 這個最直接,直接將父窗體傳遞到子窗體中,我們可以方便地在子窗體中修改父窗體中所有授權為public
的資料。
(2)給窗體新增屬性或方法:
獲取或設定擁有此窗體的窗體。若要使某窗體歸另一個窗體所有,請為其 Owner 屬性分配一個對將成為所有者的
窗體的引用。當一個窗體歸另一窗體所有時,它便隨著所有者窗體最小化和關閉。例如,如果 Form2 歸窗體 Form1
所有,則關閉或最小化 Form1 時,也會關閉或最小化 Form2。並且附屬窗體從不顯示在其所有者窗體後面。可以將附
屬窗體用於查詢和替換視窗之類的視窗,當選定所有者窗體時,這些視窗不應消失。若要確定某父窗體擁有的窗體,
請使用OwnedForms屬性。
我們可以通過下面的方式來確定這種從屬的窗體關係:
Form2 form. = new Form2();
form.Owner = this;
form.ShowDialog();
或者
Form2 form. = new Form2();
form.ShowDialog(this);
定了從屬關係以後,我們就可以通過在Form的load事件中或者通過定義public的屬性或者方法來彼此進行資料修
改操作,簡單操作如下:
Form1 pareForm. = (Form1)this.Owner;
this.listData1 = pareForm.ListData2;
(3)通過委託的方法:
相對以上兩種方法來說,這種方法可能較複雜一些,但基本思路是一樣的,需要修改的地方如下:
<1> 在Form2.cs中新增委託函式定義:public delegate void SendFun(string str);
<2> 在Form2.cs中新增委託示例:public event SendFun SendToParent;
<3> 在Form2.cs中新增一個按鈕,並新增其事件如下:
private void button1_Click(object sender, EventArgs e)
{
if (Send != null)
{
Send(this.textBox1.Text);
}
}
<4> 在Form1.cs中新增方法RecvInfo()方法如下:
private void RecvInfo (string str)
{
textBox1.Text = str;
}
<5> 在Form1.Designer.cs中的InitializeComponent()方法中新增委託例項定義:
this.myForm.Send += new Example3_Form2. SendFun (RecvInfo);
通過上面五步操作,即可達到Form間的通訊的目的。希望這個總結能夠對大家有所幫助。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-628713/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# Winform WCF 除錯服務端的程式(三種方法)C#ORM除錯服務端
- JS 與 OC 互動的三種方法JS
- C++ 與 QML 之間進行資料互動的幾種方法C++
- C#在Winform中改變Textbox高度三種方法C#ORM
- 大屏報表元件間的聯動互動效果實現方法元件
- C#三種模擬自動登入和提交POST資訊的實現方法C#
- 互動投影的幾種實現方式
- 三種觀察者模式的C#實現模式C#
- vsftpd的三種實現方法FTP
- c# 整型資料與字串 的之間互換C#字串
- Handler的三種互動場景
- 互動滑軌屏的幾種實現形式
- C# Winform實現炫酷的透明動畫介面C#ORM動畫
- 前後端資料的互動--如何實現資料加密?--02後端加密
- C#程式實現軟體開機自動啟動的兩種常用方法C#
- oracle 表空間下資料檔案遷移的三種方法Oracle
- C# 的三種序列化方法C#
- 配置postgres9.3間的fdw——實現不同postgres資料庫間的互訪問資料庫
- 交換兩個資料的三種方法
- 三種Ext提交資料的方法(轉)
- 實現三欄佈局的幾種方法
- 快速排序的三種實現方法 (C++)排序C++
- C#實現的三種方式實現模擬鍵盤按鍵C#
- 5種JavaScript和CSS互動的方法JavaScriptCSS
- 不同apk間共享資料的兩種方法APK
- c# winform as3相互呼叫C#ORMS3
- c# winform 實現分頁查詢C#ORM
- react中的三種方式實現祖孫資料共享React
- 資料結構之--氣泡排序的三種實現資料結構排序
- 區塊鏈系統可以實現資料的互動需求區塊鏈
- 基於JFinal的實現echart與資料庫互動資料庫
- 一種安全的前後端資料互動方案後端
- JSP資料和JavaScirpt資料互動使用問題的一種解決方法 (轉)JSJava
- 記錄三種實現圖片模糊的方法
- Java實現定時任務的三種方法Java
- 程式間的通訊實現(IPC)的11種方法 (轉)
- 大資料實現商業價值的九種方法大資料
- 大資料實現商業價值的9種方法大資料