zoukankan      html  css  js  c++  java
  • C#中,用户控件UserControl里面用Panl加载UserControl,并实现利用委托互相传值

    用户控件主窗体结构:左侧树形菜单,右侧Panl;

    根据点击的菜单节点,panl里面选择性加载某一个子窗体用户控件,并传值给子窗体;

    反之,在子窗体进行相应的操作之后,传值给主窗体,触发主窗体的刷新。

    首先,主窗体传值给子窗体,只需创建一个子窗体的对象,用对象去访问子窗体的公开属性及方法,可以在子窗体中定义一个参数变量,在主窗体调用时直接传值给子窗体。

    其次,在子窗体触发事件,需要主窗体同步刷新时,就需要利用委托来传递值。

    下面是用委托的具体方法:

    在子窗体中定义一个委托:

    public delegate void SelectEvent1(string Date, string eleId);
    public SelectEvent1 AfterSelectEvent1;//这里可以用event关键字修饰,也可以不用,区别是:在调用时,event事件必须用+=去赋值,不用event,则直接用=即可

    在主窗体中定义一个与此委托一致的方法://参数类型,个数相同

    private void Uc_AfterSelectEvent1(string Date, string EleId)
    {
    DATE = Date;
    ELEID = EleId;
    GetTreeListData(DATE);//刷新树形菜单的方法
    }

    在主窗体调用子窗体时,将此方法赋值给子窗体的委托:

    uc.AfterSelectEvent1 = Uc_AfterSelectEvent1;//uc是子窗体的对象

    在子窗体中,需要触发主窗体同步刷新的事件中添加自定义委托:(传值)

    AfterSelectEvent1(date_DATE.Text, txt_eleId.Text);

    结束,这样就完成了利用委托将子窗体的值传给主窗体。

    提着昨日种种千辛万苦,向明天换一些美满和幸福。
  • 相关阅读:
    排球运动规则简介
    我与计算机
    我和电脑的不解之缘
    作业
    怎样成为一个高手 观后感
    本周作业
    作业个人
    本周作业
    本周总结
    本周总结(13周)
  • 原文地址:https://www.cnblogs.com/jiuyueBlog/p/9066001.html
Copyright © 2011-2022 走看看