C#:暂时捕获父控件中的OnClick事件

时间:2012-04-20 09:49:34

标签: c# winforms events

我有一个Windows窗体应用程序,我希望能够在用户执行特定操作时显示“便利贴”类型。

例如:用户执行自动隐藏控件的操作。

我的申请应该:  o弹出一个便条,说明发生了什么。  o当用户单击表单上的任何位置时,再次隐藏发布便笺。

我已经将便利贴作为一个带有标签的简单面板实现,它会在特定事件发生时显示和隐藏。

但是,我似乎无法捕获父UserControl的OnClick事件。父控件是一个嵌套控件,包含一个拆分容器,其中一个包含面板和一个制表符控件,每个控件包含一个包含各种内容的用户控件。

除了处理每个子控件的click事件之外,还有人可以想到我可以在父控件上捕获的事件,当用户单击父控件中的任何位置时,我可以使用该事件隐藏它的注释吗? / p>

谢谢, 瑞克

2 个答案:

答案 0 :(得分:5)

这就是Capture属性的目的。弹出注释时将其设置为 true 。现在,即使鼠标移动到窗口外,任何鼠标事件也将定向到您的控件。这也是例如组合框下拉列表工作的方式。请记住,只需点击一下即可。

如果弹出窗口包含任何控件本身,则鼠标捕获不是解决方案。将其设为一个拥有的表单,只需在Deactivate事件的事件处理程序中调用Close()即可。

答案 1 :(得分:-1)

在Windows窗体中有一些事件,当您单击子事件时,将为子项启动事件,然后为父项启动事件。除非您将“handleEvnet”属性指定为true。所以请保持虚假,直到事件到达父母。