C#中兩個窗體間的數據傳遞


winform 窗體編程

在兩個窗體間傳遞數據可分為兩種:

一:父窗體向子窗體傳遞。

二:子窗體向父窗體傳遞。

傳遞實現的機制:

分別在兩個窗體中創建公有屬性的設置字段,分別供兩個窗口調用。

兩種情況的區別:

一:在父窗體向子窗體傳遞數據時,由於在父窗口中已經實例化出子窗口對象,可以直接調用子窗口的設置字段程序。

代碼示例:

Step one:在父窗體中添加_senddata字段。

public string _senddata
{
   get{return data;}
}

Step tow:在子窗體中添加_recievedata字段

public string _recievedata
{
   set{this.message=value;}
}

Step three:在父窗體中創建子窗體,並將數據傳遞過去。

private void button1_Click(Object sender,Eventargs e)
{
   Form2 f=new Form2();
   f.Show();
   f._recievedata=this._senddata;
}

二:而在子窗口向父窗口傳遞數據時,在子窗口程序中並沒有父窗口的實例化對象,所以不能直接調用父窗口的設置字段程序。

解決辦法:添加私有的父窗體對象,在子窗口中重載帶有父窗體參數的構造函數,將參數引用傳遞給私有的父窗體對象。這樣在子窗體中便有了父窗體實例對象的引用。

代碼示例:

Step one: 在子窗體中重載構造函數。

private Form1 f;//添加私有的父窗體的對象。

public Form2(Form1 _f)
{
   //.........初始化工作。
  f=_f;//將f引用為父窗體。
}

Step tow:在父窗體中新建子窗體對象時將自己作為參數傳遞給構造函數。

private void button1_Click(Object sender,Eventargs e)
{
   Form2 f=new Form2(this);//實例化子窗口時。
   f.Show();
}

Step three:在子窗體中以父窗體的引用進行數據傳遞。

private void ButtoOne_Click(Object sender,EventArgs e)
{
   //調用父窗體的引用。
   f._recievedata=this._senddata;

}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM