在Form1的类中添加一个方法更新textBox1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//添加一个方法,用于更新textBox1
public void UpdateTextBox(string newData)
{
this.textBox1.Text = newData
}
//点击按钮,显示Form2窗口
private void buttonShowForm2_Click(object sender, EventArgs e)
{
//用新的构造函数(见下面的Form2类),创建Form2实例
Form2 form2 = new Form2(this);
form2.Show();
}
//其余代码略……
}
在Form2中,添加一个新的构造函数
public partial class Form2 : Form
{
private Form1 _form1;
public Form2()
{
InitializeComponent();
}
//添加一个构造函数
public Form2(Form1 form): this()
{
_form1 = form;
}
//当鼠标点击了button1
private void button1_Click(object sender, EventArgs e)
{
//将数据传回Form1并更新显示
_from1.UpdateTextBox(string newData);
}
//其余代码略……
}
form1中定义一个public string pubValue="";同时将form1的TextBox_TextChanged设置为public,并且textbox.text=pubValue。
在打开form2前,将form2.Parentform=this;
form2中点击按钮修改pubValue的值,然后触发this.parentform.TextBox_TextChanged(sender,e);就可以了。
等等我试试。我知道怎么做,但是我不敢确定,用静态变量好像可以实现,你的New的问题
你想,你都New了一个form1 就是一个新的窗体了。所以不行
在form1中写一个方法用来修改textBox的Text
比如
void ChangeText(string s)
{
textBox.text=s;
}
然后再form2中写一个委托,
public delegate void mydelegate(string ss);
public mydelegate change;
在form1中显示form2的时候写
form2 f=new form2();
f.change=new form2.mydelegate(ChangeText);//将方法绑定到form2中
然后再form2的修改按钮里写:
change(t); //t为要修改的内容
最简单的就是用委托 就可以实现了