用户控件主窗体结构:左侧树形菜单,右侧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);

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

C#中,用户控件UserControl里面用Panl加载UserControl,并实现利用委托互相传值的更多相关文章

  1. WebForm中搭配母版页和用户控件页时候的事件加载顺序

    在生产环境中,一个内容页(aspx)可能会包含数个用户控件(ascx),而每个控件可能都会涉及到数据库访问. 如果在内容页.母版页.控件页中各自使用自己的数据库访问方法,会造成很大的运行成本. 这样的 ...

  2. Cesium中Clock控件及时间序列瓦片动态加载

    前言 前面已经写了两篇博客介绍Cesium,一篇整体上简单介绍了Cesium如何上手,还有一篇介绍了如何将Cesium与分布式地理信息处理框架Geotrellis相结合.Cesium的强大之处也在于其 ...

  3. SharePoint 中用户控件的开发及应用

    1.新建解决方案以及SharePoint项目,步骤比较简单略过,然后映射CONTROLTEMPLATES文件夹,在里面添加用户控件(仅场解决方案),如下图: 2.解决方案结构,如下图: 简单介绍一下, ...

  4. WPF中用户控件对比自定义控件(UserControl VS CustomControl)

    接着这篇文章(http://www.cnblogs.com/shiyue/archive/2013/02/02/2889907.html)写: 用户控件(组合) 用于在一个项目中使用多次 自定义控件( ...

  5. UWP &WP8.1 依赖属性和用户控件 依赖属性简单使用 uwp添加UserControl

    上面说 附加属性.这章节说依赖属性. 所谓依赖属性.白话讲就是添加一个公开的属性. 同样,依赖属性的用法和附加属性的用法差不多. 依赖属性是具有一个get,set的属性,以及反调函数. 首先是声明依赖 ...

  6. 用户控件的设计要点 System.Windows.Forms.UserControl

    用户控件的设计要点 最近的项目中有一个瀑布图(彩图)的功能,就是把空间和时间上的点量值以图的形式呈现出来,如下图: X坐标为空间,水平方向的一个像素代表一个空间单位(例如50米) Y坐标为时间,垂直方 ...

  7. wpf中用户控件的属性重用

    我们经常会抽取一些可重用的控件,某个属性是否需要重用,直接决定了这个属性的绑定方式. 1.完全不可重用的控件 有一些与业务强相关的控件,它们的属性完全来自ViewModel,越是相对复杂的控件,越容易 ...

  8. gePlugin封装成winform控件,一行代码即可加载。

    将插件直接封装为控件,大大简化了GEPlugin的使用.多数常用功能也已经封装完毕,其他功能全部开放接口,直接调用即可. 1. GepluginControl控件传送门: 链接:https://pan ...

  9. XE7 & FMX 那些年我们一起上过的控件:ListView 之 (3) 加载数据时如何显示自定义样式

    本文介绍一下ListView下如何加载数据.及使用进度条反馈当前进度给用户. 注意: 原创作品,请尊重作者劳动成果,转载请注明出处!!!原文永久固定地址:http://www.cnblogs.com/ ...

随机推荐

  1. DLL 调用 对话框 以及 如何获取调用dll 应用程序(窗口程序)的窗口句柄

    1.一般创建需要的窗口,转换成相应的窗口类: 声明一个导出函数,来处理窗口的显示,如: CTest test; extern "C" __declspec(dllexport) v ...

  2. JDK8新特性之方法引用

    什么是方法引用 方法引用是只需要使用方法的名字,而具体调用交给函数式接口,需要和Lambda表达式配合使用. 如: List<String> list = Arrays.asList(&q ...

  3. hadoop系列(二)分布式文件系统HDFS

    根据core-site.xml的配置,接下来就可以通过:hdfs://localhost:9000来对hdfs进行操作了. 1.创建输入目录 C:\WINDOWS\system32>hadoop ...

  4. PROJECT | 四则运算UI设计 - 项目总结

    [项目Github地址] https://github.com/oTPo/hw2 [项目规划] PSP表格 事项 预计时间(min) 实际花费时间(min) 需求分析 60 60 开发流程分析 30 ...

  5. [牛客小白月赛18] Forsaken的数列

    FHQTreap裸题... 用文艺平衡树的方法,维护区间和然后一直Push_Down就可以了(60行代码暴力AC) //张家奇怎么又AKIOI了呀,怎么CSP也满分啊...怎么清北天天给他打电话啊.. ...

  6. curl直接作为http的客户端?也是醉了

  7. C语言itoa()函数和atoi()函数详解(整数转字符C实现)【转载】

    文章转载自https://www.cnblogs.com/bluestorm/p/3168719.html   C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. ...

  8. NX二次开发-UFUN打开工程图UF_DRAW_open_drawing

    NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_part.h> UF_initialize ...

  9. NX二次开发-获取面的法向向量UF_MODL_ask_face_data

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...

  10. NX二次开发-UFUN删除链表函数UF_MODL_delete_list

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...