C#如何用B控制A窗体上的控件

2025-05-14 14:51:28
推荐回答(5个)
回答1:

在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,比较繁琐,我就不一一介绍。

回答2:

在初始化B时把A窗口传给B就可以修改A的控件了。在B中用A.控件名.属性=。。。即可

回答3:

方法很多,比如说原来的b是
public class formB
{

}
那就加上
public class formB
{
formA _frm=null;
public formb(formA frm)
{
_frm=frm;

}
}

在A中实例化的时候就是
formB b=new formB(this);

然后你在B中就可以用_frm来调用

回答4:

1、可以把B作为一个dialog 关闭时返回一个值 dialogResult
2、定义static 数据池 并创建事件 A绑定事件
3、A创建静态属性 触发事件 同时A绑定事件

回答5:

B里面增加一个public的方法:
public void SetText(string text)
{
textBox.Text = text;
}

A里面实例化B并且调用这个方法,具体可以放在某个按钮的Click下:
public void btn_Click()
{
FormB b = new FormB();

b.SetText("hello");

}