首先定義兩個Form,一個為Form1,一個為Form2,其中Form1作為父視窗,Form2作為子視窗
1、父視窗傳值給子視窗
Form1中代碼:
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 lForm = new Form2();//執行個體化一個Form2視窗
lForm.String1 = "傳值給子視窗Form2成功";//設定Form2中string1的值
lForm.SetValue();//設定Form2中Label1的
lForm.ShowDialog();
}
Form2中代碼:
private string string1;
public string String1
{
set
{
string1 = value;
}
}
public void SetValue()
{
this.label1.Text = string1;
}
public Form2()
{
InitializeComponent();
}
2、子視窗傳回值給父視窗
Form1中代碼:
public Form1()
{
InitializeComponent();
}
private string strValue;
public string StrValue
{
set
{
strValue = value;
}
}
private void btnShowForm2_Click(object sender, EventArgs e)
{
Form2 lForm = new Form2();
lForm.Owner = this;//重要的一步,主要是使Form2的Owner指標指向Form1
lForm.ShowDialog();
MessageBox.Show(strValue);//顯示返回的值
}
From2中代碼:
public Form2()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
Form1 lForm1 = (Form1)this.Owner;//把Form2的父視窗指標賦給lForm1
lForm1.StrValue = "子視窗Form2返回數值成功";//使用父視窗指標賦值
this.Close();
}