Container Control正在失去焦点

时间:2009-09-02 14:13:50

标签: c# winforms

我正在尝试创建用户控件,它将像富按钮一样工作。 它应该对悬停有影响 - 我在MouseEnter上打开边框并在MouseLeave上再次关闭。 但是,当我将鼠标悬停在我的控件中的标签上时,它会触发Control.MouseLeave。 有什么方法可以阻止这种情况吗?

1 个答案:

答案 0 :(得分:0)

首先,焦点Enter和Leave是与MouseEnter和MouseLeave不同的事件。焦点处理键盘输入。 MouseEnter和MouseLeave处理鼠标的位置

输入嵌套控件会在父控件上触发MouseLeave。您可以通过将控件的Capture属性设置为true来捕获鼠标,但您可能会发现它的行为与您期望的不同。

您可以查看我的帖子here。我对嵌套控件有同样的问题。我选择通过调用Application.AddMessageFilter创建一个与鼠标挂钩相当的.NET。

另一种选择是删除内部标签控件并在按钮的OnPaint中手动绘制文本。