星期二, 1月 14, 2014

C# WinForm父子表單傳值方法

由於目前專案使用 WindowForm,因此對於父子表單間的傳值遇到一些問題
在稍微 Google 一下後找到以下解決方案。

但因為原作者寫的比較全面,而我專案中並用不到
因此這邊稍微加上註解來協助理解

改寫後 :

Form1 為父表單;Form2 為子表單

1. 在Form1輸入值,在開啟Form2時顯示Form2的值;
而Form2關閉後,將Form2的值帶回Form1。

public Form2()
{
    InitializeComponent();
}

//OverLord 建構子
public Form2(string strTextMsg)
{
    InitializeComponent();
    textBox1.Text = strTextMsg; //由父表單傳入預設值
}

//變數設定
public string TextBoxMsg
{
    set
    {
        textBox1.Text = value; //設定初始值時使用
    }
    get
    {
        return textBox1.Text; //提供給父表單取值用
    }
}


父表單 Form1 方式 1

Form2 obj = new Form2();
obj.TextBoxMsg = textBox1.Text; //從父表單設定數值至子表單
if (obj.ShowDialog() == DialogResult.OK) //利用 Dialog 狀態來使用
{
  this.textBox1.Text = obj.TextBoxMsg; //從子表單取回設定完的數值
}

父表單 Form1 方式 2

Form2 obj = new Form2(textBox1.Text); //傳入預設值給子表單
if (obj.ShowDialog() == DialogResult.OK)
{
  this.textBox1.Text = obj.TextBoxMsg; //從子表單取回設定完的數值
}

原作者頁面 : http://www.dotblogs.com.tw/jeff-yeh/archive/2010/01/04/12799.aspx

沒有留言:

張貼留言