我正在尝试创建用户控件,它将像富按钮一样工作。 它应该对悬停有影响 - 我在MouseEnter上打开边框并在MouseLeave上再次关闭。 但是,当我将鼠标悬停在我的控件中的标签上时,它会触发Control.MouseLeave。 有什么方法可以阻止这种情况吗?
答案 0 :(得分:0)
首先,焦点Enter和Leave是与MouseEnter和MouseLeave不同的事件。焦点处理键盘输入。 MouseEnter和MouseLeave处理鼠标的位置。
输入嵌套控件会在父控件上触发MouseLeave。您可以通过将控件的Capture属性设置为true来捕获鼠标,但您可能会发现它的行为与您期望的不同。
您可以查看我的帖子here。我对嵌套控件有同样的问题。我选择通过调用Application.AddMessageFilter
创建一个与鼠标挂钩相当的.NET。
另一种选择是删除内部标签控件并在按钮的OnPaint中手动绘制文本。