【问题标题】:Container Control is losing focus容器控制正在失去焦点
【发布时间】:2009-09-02 14:13:50
【问题描述】:

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

【问题讨论】:

标签: c# winforms


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-02-09
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多