C#中,用户控件UserControl里面用Panl加载UserControl,并实现利用委托互相传值
2021-04-09 09:43
标签:利用 eve event 不用 实现 sele 参数 list cte 用户控件主窗体结构:左侧树形菜单,右侧Panl; 根据点击的菜单节点,panl里面选择性加载某一个子窗体用户控件,并传值给子窗体; 反之,在子窗体进行相应的操作之后,传值给主窗体,触发主窗体的刷新。 首先,主窗体传值给子窗体,只需创建一个子窗体的对象,用对象去访问子窗体的公开属性及方法,可以在子窗体中定义一个参数变量,在主窗体调用时直接传值给子窗体。 其次,在子窗体触发事件,需要主窗体同步刷新时,就需要利用委托来传递值。 下面是用委托的具体方法: 在子窗体中定义一个委托: public delegate void SelectEvent1(string Date, string eleId); 在主窗体中定义一个与此委托一致的方法://参数类型,个数相同 private void Uc_AfterSelectEvent1(string Date, string EleId) 在主窗体调用子窗体时,将此方法赋值给子窗体的委托: uc.AfterSelectEvent1 = Uc_AfterSelectEvent1;//uc是子窗体的对象 在子窗体中,需要触发主窗体同步刷新的事件中添加自定义委托:(传值) AfterSelectEvent1(date_DATE.Text, txt_eleId.Text); 结束,这样就完成了利用委托将子窗体的值传给主窗体。 C#中,用户控件UserControl里面用Panl加载UserControl,并实现利用委托互相传值 标签:利用 eve event 不用 实现 sele 参数 list cte 原文地址:https://www.cnblogs.com/jiuyueBlog/p/9066001.html
public SelectEvent1 AfterSelectEvent1;//这里可以用event关键字修饰,也可以不用,区别是:在调用时,event事件必须用+=去赋值,不用event,则直接用=即可
{
DATE = Date;
ELEID = EleId;
GetTreeListData(DATE);//刷新树形菜单的方法
}
下一篇:win10右击菜单在左边
文章标题:C#中,用户控件UserControl里面用Panl加载UserControl,并实现利用委托互相传值
文章链接:http://soscw.com/index.php/essay/73281.html