如何判断用户何时点击了您的控件范围之外?

时间:2010-11-13 06:08:47

标签: c# winforms

我有自定义UserControl。我想在几个不同的产品中使用它,所以我想要一些可以在UserControl本身内部实现的东西。我想知道用户何时在UserControl的边界外单击以便我可以隐藏它,类似于ComboBox。我怎么能这样做?

我尝试过处理点击事件,但是如果点击发生在控件的范围内,它似乎只会触发。

3 个答案:

答案 0 :(得分:3)

这就是Capture属性的目的。将其设置为true并将所有鼠标消息路由到您的控件,即使它移出窗口边界。检查MouseDown事件中的e.Location属性。

答案 1 :(得分:1)

嗯,您可以通过收听GotFocus / LostFocus事件来完成您想要的任务。组合框在它们失去焦点时打开和关闭时会给出下拉焦点。

答案 2 :(得分:-1)

执行此操作

  • 选择表单上的所有控件,包括表单
  • 在属性窗口中选择MouseClick事件
  • 现在在Common_MouseClick中输入以下代码

<强>代码:

 if (!sender.Equals(yourControl))
  {
        yourControl.Visible=false;
  }