利用委托实现父控件与子控件之间消息传递
2013-07-04 14:32
281 查看
winform模式下的用户自定义控件功能强大,可以根据业务的需要进行灵活的封装。可是有个很常见的问题摆在面前:怎么在点击子控件时,触发父控件,比如flowLayoutPanel的一个事件呢?
原来也模糊地记得似乎哪位大侠用委托实现过,如今,根据自己的琢磨,也实现了,算是重新温习了一遍吧。
首先,在父控件,比如flowLayoutPanel的ControlAdded事件中,将子控件的某一个事件,比如子控件的click事件,与父控件(容器)的的某一个函数,通过委托链接起来。代码如下面这样:
然后,在Control_Click事件中,填入父控件需要响应的代码即可。如下所示:
这样一来,一旦子控件接收到click事件,首先会触发自己的click函数,执行完毕后,根据委托链继续执行父控件的Control_click事件,这样一来,子控件向父控件消息传递的目的就达到了。
原来也模糊地记得似乎哪位大侠用委托实现过,如今,根据自己的琢磨,也实现了,算是重新温习了一遍吧。
首先,在父控件,比如flowLayoutPanel的ControlAdded事件中,将子控件的某一个事件,比如子控件的click事件,与父控件(容器)的的某一个函数,通过委托链接起来。代码如下面这样:
private void flowLayoutPanel1_ControlAdded(object sender, ControlEventArgs e) { e.Control.Click += Control_Click; }
然后,在Control_Click事件中,填入父控件需要响应的代码即可。如下所示:
private void Control_Click(object sender, EventArgs e) { for (int i = 0; i < this.flowLayoutPanel1.Controls.Count; i++) { 。。。 } }
这样一来,一旦子控件接收到click事件,首先会触发自己的click函数,执行完毕后,根据委托链继续执行父控件的Control_click事件,这样一来,子控件向父控件消息传递的目的就达到了。
相关文章推荐
- 【Win32 API】利用SendMessage实现winform与wpf之间的消息传递
- 利用Bundle实现Android Activity间消息的传递
- C#利用委托实现窗体间的值传递 .
- C#利用委托实现窗体间的值传递 .
- java线程间通信[实现不同线程之间的消息传递(通信),生产者和消费者模型]
- 利用viewstack组件实现各个子组件之间的跳转和数据传递
- qt利用委托:QStyledItemDelegate,实现tableview 的表格项的自定义显示,如插入图片,绘制控件
- 【转】利用Bundle实现Android Activity间消息的传递
- 如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- 编码模式(一) - 控件之间的消息传递
- 如果在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- Delphi开发环境下利用Spcomm控件实现PC机与单片机之间串口通信的方法
- MPI应用:实现节点之间的循环消息传递
- 利用接口实现service与Activity消息传递
- 利用事件委托实现用户控件中的行为触发所在页面的处理函数
- 委托与事件的简单应用(不同控件之间的控制及参数传递,C# VB)
- 利用委托事件实现Winform窗体之间的同步刷新
- 利用Bundle实现Activity之间的数据传递。
- 主题:利用Bundle实现Android Activity间消息的传递
- Android利用Bundle类实现activity消息传递