在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是在该自定义控件中。不知道是不是这里影响?
在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是在该自定义控件中。不知道是不是这里影响?
B b = new B();
b.a = this;
b.Show();
然后b中就可以调用A的public函数,或者读写public的属性了。
C# WinForm传值
http://blog.csdn.net/renyouprince/article/details/3304906
我把你的代码直接贴在这,以便让更多的人知道!
在WinForm之间传值有很多种方法,在这里我用的是delegate and event进行传值.
新建一个WindowsApplication,创建两个WinForm.其实它们就是两个类.
每个WinForm中各加入一个Button和一个TextBox.
在WinForm2中写入代理和事件(delegate and event)如下:
//代理声明
public delegate void SendMessage(string str);
//事件声明
public event SendMessage SendEvent;
private void btnSend_Click(object sender, EventArgs e)
{
//调用事件
SendEvent(textBox1.Text);
}
在WinForm1中写入如下代码:
private void btnShow_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
//Form2事件注册
f2.SendEvent+=new Form2.SendMessage(GetMessage);
f2.Show();
}
//代理调用的方法
public void GetMessage(string str)
{
textBox1.Text = str;
}
在点击WinForm1的Button弹出WinForm2后,在WinForm2中文本框输入文字,然后点击按钮,信息将会立刻发送到WinForm1,并显示出来.