窗体传值--属性--将主窗体实例传给子窗体的属性

创建两个form,Form1,Form2

Form1上有一个Button---f1_Bottun1,还有一个TextBox--f1_textbox1,

Form2上有一个Button---f2_Button1,还有两个TextBox--f2_textbox1,f2_textbox2.

我们要做到的是点击f1-Button1打开Form2,在Form2上点击f2_Botton1时在Form1的f1_textbox里显示

f2_textbox1.Text与f2_textbox2.Text之和。

在Form2里定义:

private Form1 f1;

public Form1 F1

{

get {return f1;}

set{f1=value;}

}

f2_Button click事件里

f1.f1_textbox1.Text=f2_textbox1.Text+f2_textbox2.Text

在Form1的f1_Button1事件

Form2 F2=new Form2();

F2.F1=this;//关键点,将这个Form1这一个实例赋值给Form2里的属性F1,F1就是Form1打开Form2时的状态。

F2.ShowDialog();

因为窗体的控件是private属性--private System.Windows.Forms.TextBox textBox1;

所以上面f2_Button click事件里获取不到f1.f1_textbox1

所以我们在Form1里写个公共方法

public void Sum(int x,int y)

{

f1_textbox1.Text=x+y;

}

在f2_Button click事件里改成

f1.Sum(int.Parse(f2_textbox1.Text),int.Parse(f2_textbox2.Text));

你可能感兴趣的:(WinForm,C#)