C#中获取treeview选中的子节点的值,点击确定按钮将值传递给另一窗体的文本框中 5
展开全部
在treeview所属窗体的类型定义中增加一个事件/委托的定义, 在treeview的节点单击事件中,触发/调用该事件/委托,而在目标窗体类型的构造方法中,注册treeview所属窗体的该事件/委托的处理方法,方法内容将事件数据(包含子节点的相关数据)给它的文本框就ok了。如果不想要treeview所属窗体的引用,使用静态事件/委托也ok的
追问
第一个窗体中form1
publicvoid GreetPeople(string name) {
// 做某些额外的事情,比如初始化之类,此处略
txtbox1.text=name;
}第二个窗体中我是string str=treeview1.SelectedNode.text;获取节点值
form1 f=new form1();
f.GreetPeople(str);
开始我是这样做的,但是出错
追答
namespace CSharp.Chapter14
{
///
/// 表示将处理功能信息提交相关的事件
///
public delegate void FunctionCommitEventHandler();
}
如果你折腾过抽象方法abstract,那你把方法签名中的关键字abstract换成委托关键字delegate,就成了委托定义,委托就是封装方法的,所以跟方法保持一致的签名。
如果你折腾过字段,在字段的"类型"前加一个event关键字,就是事件的定义了,只是这个"类型"必须是一个委托类型。事件处理方法的签名必须与事件定义的委托类型的签名保持一致,就这么简单。在类型内部,事件可以直接像调用方法一样使用,或用执行委托一样的方式调用;在类型外部,事件通过+=和-=完成事件处理方法的注册和注销。
[DisplayName("FunctionCommitCompleted")]
[Description("在功能提交完成后发生")]
public event FunctionCommitEventHandler FunctionCommitCompleted;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在另一个窗体中定义一个接收它的属性,在改窗体中实例另一个窗体的时候,实例名点出来定义的属性,将选中的节点赋值就过去嘞
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用委托,多窗体多控件之间的值的传递可以通过委托进行。安全无后顾之忧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将另一个窗体的文本框设置为public
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询