在A中这么写:
public static String str="";
//加载实例化窗体的时候
void loadFormB()
{
textBox1.Text=str;
B frm=new B();
B.ShowDialog();
}
在B中这样写代码:
//B中的事件给A窗体控件传值【实例操作】
void ToAControl()
{
A.str=textBox2.Text; //B里面的textBox2给A里面的textBox1传值
}
好了你在B里面文本框输入,A里面也会显示了。
但是如果你这俩不是一个应用程序,那就不是实例之间传值了,那就是进程传值,需要获取窗体句柄和扫描控件十六进制ID,比较繁琐,我就不一一介绍。
在初始化B时把A窗口传给B就可以修改A的控件了。在B中用A.控件名.属性=。。。即可
方法很多,比如说原来的b是
public class formB
{
}
那就加上
public class formB
{
formA _frm=null;
public formb(formA frm)
{
_frm=frm;
}
}
在A中实例化的时候就是
formB b=new formB(this);
然后你在B中就可以用_frm来调用
1、可以把B作为一个dialog 关闭时返回一个值 dialogResult
2、定义static 数据池 并创建事件 A绑定事件
3、A创建静态属性 触发事件 同时A绑定事件
B里面增加一个public的方法:
public void SetText(string text)
{
textBox.Text = text;
}
A里面实例化B并且调用这个方法,具体可以放在某个按钮的Click下:
public void btn_Click()
{
FormB b = new FormB();
b.SetText("hello");
}