Control mouselleave事件的问题

本文关键字:问题 事件 mouselleave Control | 更新日期: 2023-09-27 17:53:00

当我使用MouseLeave事件执行操作时,如果用户离开Control足够快,它实际上会跳过MouseLeave事件。

用户将离开control并且没有调用MouseLeave事件。现在,我不知道是否有办法解决这个问题,或者是否有更好的事件可以使用。我基本上有一个UserControl,里面有一个Combobox。当其他滚动到UserControl上时,ComboBox出现(每次都有效),然而,当用户离开Control去另一个时,它可能会或可能不会使组合框。可见= false。这似乎取决于光标移动的速度。

有什么想法吗?

Control mouselleave事件的问题

前段时间发生在我身上!我必须使用PInvoke来挂钩鼠标事件,并自己完成所有的逻辑。

下面的文章包含了如何钩子鼠标事件的细节。

http://www.codeproject.com/KB/cs/globalhook.aspx

在您设法钩住事件之后,您将需要执行计算控件绝对位置的逻辑,并告诉鼠标指针是在内还是在外。然后你需要跟踪输入/输出的变化,这就是全部。

还有很长的路要走…我得说这太过分了。但如果你真的需要它,无论如何。

鼠标离开事件将在您离开控件时调用。我想你忘记登记了。

 private void comboBox1_Leave(object sender, EventArgs e)
        {
        }

你可以使用comboboxleave事件这将调用当你离开这个控件,这是你期待我认为:)别忘了先注册事件

我想象它发生在鼠标被捕获时:WM_MOUSELEAVE不生成当鼠标左键按住