zoukankan      html  css  js  c++  java
  • 利用委托实现父控件与子控件之间消息传递

    winform模式下的用户自定义控件功能强大,可以根据业务的需要进行灵活的封装。可是有个很常见的问题摆在面前:怎么在点击子控件时,触发父控件,比如flowLayoutPanel的一个事件呢?

    原来也模糊地记得似乎哪位大侠用委托实现过,如今,根据自己的琢磨,也实现了,算是重新温习了一遍吧。

    首先,在父控件,比如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事件,这样一来,子控件向父控件消息传递的目的就达到了。

  • 相关阅读:
    50个C/C++经典面试题
    多继承的构造顺序
    sizeof(struct)
    c++ 实现strcpy(),strlen()
    十天冲刺-01
    学习进度条(第八周)
    梦断代码阅读笔记01
    学习进度条(第七周)
    团队作业记账本开发NABCD
    学习进度条(第六周)
  • 原文地址:https://www.cnblogs.com/jizhong/p/3171513.html
Copyright © 2011-2022 走看看