c#更改其他窗体的属性

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:55:44
我有2个窗体,form1和form2,form1的代码是form2.showdialog();然后我想在form2里面更改form1的textbox的text属性,大家帮帮忙!急!

在窗体form1中的textbox1有个属性窗口中看到有个属性叫做 Modify.
设置它的值,modify = public;
然后窗体form2的构造函数中传递窗体1进去;
Form f1;
public form2(Form f)
{
f1=f;
}
在Form1的窗体里面打开Form2,这样写
form2 f2=new form2(this);
f2.ShowDialog();

好了,现在在窗体Form2中直接可以操作TextBox了
就这样写: f1.textbox1.text="你要的值";

首先修改form1的构造函数,在里边加个参数
然后在form2中写:
form1 f=new form1(参数);
f.show();
这个参数就是textbox的text属性

form1中增加函数:
public void SetText(string txt)
{
textBox1.Text=txt;
}

showdialog()中要增加一个参数this:
form2 f=new form2();
f.showdialog(this);

form2中:
form1 f=(form1)this.Owner;
f.SetText("abc");

日,这个几百年的新手问题~

解决方法有很多种,首先看你为什么用showdialog()

showdialog弹出的对话框在点确定或取消后,程序会回到 showdialog()下面继续运行。在你关闭之前,其它窗口也不会得到焦点。
所以简单直观的办法:
//弹出窗口
form2.showdialog();
//关闭窗口后执行以下内容
form1.textbox1.text=form2.textbox1.text;
form1.textbox2.text=f