Control mouselleave事件的问题
本文关键字:问题 事件 mouselleave Control | 更新日期: 2023-09-27 17:53:00
当我使用MouseLeave
事件执行操作时,如果用户离开Control
足够快,它实际上会跳过MouseLeave
事件。
用户将离开control
并且没有调用MouseLeave
事件。现在,我不知道是否有办法解决这个问题,或者是否有更好的事件可以使用。我基本上有一个UserControl
,里面有一个Combobox
。当其他滚动到UserControl
上时,ComboBox
出现(每次都有效),然而,当用户离开Control
去另一个时,它可能会或可能不会使组合框。可见= false。这似乎取决于光标移动的速度。
有什么想法吗?
前段时间发生在我身上!我必须使用PInvoke来挂钩鼠标事件,并自己完成所有的逻辑。
下面的文章包含了如何钩子鼠标事件的细节。
http://www.codeproject.com/KB/cs/globalhook.aspx在您设法钩住事件之后,您将需要执行计算控件绝对位置的逻辑,并告诉鼠标指针是在内还是在外。然后你需要跟踪输入/输出的变化,这就是全部。
还有很长的路要走…我得说这太过分了。但如果你真的需要它,无论如何。
鼠标离开事件将在您离开控件时调用。我想你忘记登记了。
private void comboBox1_Leave(object sender, EventArgs e)
{
}
你可以使用comboboxleave事件这将调用当你离开这个控件,这是你期待我认为:)别忘了先注册事件
我想象它发生在鼠标被捕获时:WM_MOUSELEAVE不生成当鼠标左键按住