最近工作中用到了自定义控件,于是写了一个复合控件,控件继承UseControl,上面有一个Lable和PictureBox;

在使用中发现控件的Click事件不响应,经过多次实验发现只有在单击事件发生在Lable上字和PictureBox上时,事件不相应,推测可能是上面的Lable和PictureBox控件阻断了之后的事件响应;结合资料找到一个解决办法:


重新定义组件的Click事件,代码如下:

        //新定义组件单击事件
        public new event EventHandler Click
        {
            add
            {
                base.Click += value;
                pbImage.Click += value;
                label1.Click += value;
            }
            remove
            {
                base.Click -= value;
                pbImage.Click -= value;
                label1.Click -= value;
            }
        }


此处只有两个控件,所以就依次手动添加了,如果比较多可以采用遍历的方式添加;