C#在Form之间传值问题

来源:互联网 发布:知无涯者 豆瓣 编辑:程序博客网 时间:2024/05/16 10:25
首先定义两个Form,一个为Form1,一个为Form2,其中Form1作为父窗口,Form2作为子窗口
1、父窗口传值给子窗口

      Form1中代码:(Form1中添加一个按钮控件)

  1. public Form1()
  2.         {
  3.             InitializeComponent();
  4.         }
  5.         private void button1_Click(object sender, EventArgs e)
  6.         {
  7.             Form2 Form = new Form2();//实例化一个Form2窗口
  8.             Form.String1 = "传值给子窗口Form2成功";//设置Form2中string1的值
  9.             Form.SetValue();//设置Form2中Label1的
  10.             Form.ShowDialog();
  11.         }
Form2中代码:(在其中添加一个label控件 name属性为默认的label1)
  1. private string string1;
  2.         public string String1
  3.         {
  4.             set
  5.             {
  6.                 string1 = value;
  7.             }
  8.         }
  9.         public void SetValue()
  10.         {
  11.             this.label1.Text = string1;
  12.         }
  13.         public Form2()
  14.         {
  15.             InitializeComponent();
  16.         }
2、子窗口返回值给父窗口
      Form1中代码:(添加一个按钮控件)
  1. public Form1()
  2.         {
  3.             InitializeComponent();
  4.         }
  5.         private string strValue;
  6.         public string StrValue
  7.         {
  8.             set
  9.             {
  10.                 strValue = value;
  11.             }
  12.         }
  13.         private void btnShowForm2_Click(object sender, EventArgs e)
  14.         {
  15.             Form2 lForm = new Form2();
  16.             lForm.Owner = this;//重要的一步,主要是使Form2的Owner指针指向Form1
  17.             lForm.ShowDialog();
  18.             MessageBox.Show(strValue);//显示返回的值
  19.         }
From2中代码:(添加一个按钮控件)
  1. public Form2()
  2.         {
  3.             InitializeComponent();
  4.         }
  5.         private void btnClose_Click(object sender, EventArgs e)
  6.         {
  7.             Form1 lForm1 = (Form1)this.Owner;//把Form2的父窗口指针赋给lForm1
  8.             lForm1.StrValue = "子窗口Form2返回数值成功";//使用父窗口指针赋值
  9.             this.Close();
  10.         }