我定义了Form1和Form2 其实中Form1定义了一个TextBox和Button。TextBox不可编辑。当我点Form1的Button的时候,显示Form2,Form2也有一个TextBox和Button,Form2的TextBox显示Form1的TextBox内容,当点击Form2的Button的时候,将把他的TextBox结果传送到Form1的TextBox中,同时Form2关闭。 最后一步,Form2的内容怎么传到Form1呢?///Form1
private void button1_Click(object sender, System.EventArgs e)
{
Form2 editForm = new Form2();
editForm.textBox1.Text = this.textBox1.Text;
editForm.ShowDialog();
}///Form2 private void button1_Click(object sender, System.EventArgs e)
{
//???????????????????????????
Dispose(true);
}
private void button1_Click(object sender, System.EventArgs e)
{
Form2 editForm = new Form2();
editForm.textBox1.Text = this.textBox1.Text;
editForm.ShowDialog();
}///Form2 private void button1_Click(object sender, System.EventArgs e)
{
//???????????????????????????
Dispose(true);
}
1、将Form2的构造函数改为
public Form2(TextBox tb){
...//原来内容
this.textBox1.Text=tb.Text;//将参数的文本框的文本赋值给Form2中的文本框(TextBox)
}
2、在Form1的button1的单击事件中修改Form2的实例化:
Form2 f2=new Form2(this.textBox1);//将Form1中的文本框对象作为参数传递以上方法,问题解决。另外说一下,如果你想把Form1中的多个对象(值)传递到Form2中,你也可以将Form2的构造函数中的参数改为Form1对象本身,然后再一一复制。
public Form2(Form1 f1){
this.textBox1.Text=f1.textBox1.Text;
this.button1.Text=f1.button1.Text;
...
}
TextBox tb1;//不用实例化
public Form2(TextBox tb){
...//原来内容
this.tb1=tb;//将Form1中的textBox1的引用给Form2中的tb1,你修改tb1就是修改Form1中的textBox1
}