日期:2014-05-17  浏览次数:20991 次

控件覆盖后响应事件的问题
现在有一个自定义用户控件,上面有三个picturebox控件,将自定义控件完全覆盖。然后生成dll文件,将其放在工具栏。在另外一个项目中,将其拖动到窗口,然后试图响应鼠标点击事件,结果发现失败了。其原因是点击这个控件时,响应的是三个picturebox的点击事件。请问,该如何做到,当单击这个控件时,能响应它的MouseClick事件,而不是picturebox的?
------最佳解决方案--------------------
1.你的三个picturebox控件,将主控件完全覆盖,那你什么点击 主控件
2.或者你拖出主控件,然后然主控制注册Click事件(userControl1.OnClick+=....),外部写一个按钮什么的手工调用那么事件函数。
------其他解决方案--------------------
设置picturebox的Enable 
------其他解决方案--------------------
引用:
设置picturebox的Enable

这个方法不错,比较简单,不过如果是别的控件而不是picturebox的话,控件会变灰了。
------其他解决方案--------------------
引用:
1.你的三个picturebox控件,将主控件完全覆盖,那你什么点击 主控件
2.或者你拖出主控件,然后然主控制注册Click事件(userControl1.OnClick+=....),外部写一个按钮什么的手工调用那么事件函数。

谢谢,不过我已经自己解决啦。
在自定义控件那里声明一个事件MyMouseClick,然后在三个picturebox的鼠标点击事件调用。在另一个项目使用这个自定义控件的时候把鼠标点击事件绑定到MyMouseClick就行了.