winform中如何把第二个界面的值传回给第一个界面?
在A界面有一按键打开B界面,然后从B界面传回一个值。
在B界面代码有(部份):
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
UILevel.AgrMain agrMain = new AgrMain();
if (treeView1.SelectedNode.LastNode == null) //判断是否为末节结点
{
textBox1.Text = e.Node.Text; //获取节点文本
BussinessLevel.ShareClass.GroupID = e.Node.Text.Trim();
this.Close();
}
else
{
textBox1.Text = "";
}
}
在A界面代码如下:
private void AgrMain_EnabledChanged(object sender, EventArgs e)
{
textBox3.Text = BussinessLevel.ShareClass.GroupID;
}
为什么值传不过来?请前辈指点!
特别说明,A界面中嵌套一个自定义控件,textBox3是在该自定义控件中。不知道是不是这里影响?
------解决方案--------------------两个BussinessLevel是一个实例吗?
简单点就是A打开B的时候,把自己传过去.
伪代码:
B b = new B();
b.a = this;
b.Show();
然后b中就可以调用A的public函数,或者读写public的属性了。
------解决方案--------------------
要想耦合性低点,可以使用Delegate.
参考:
C# WinForm传值
http://blog.csdn.net/renyouprince/article/details/3304906