gpt4 book ai didi

c# - 事件冒泡 - 子控件的鼠标悬停事件

转载 作者:行者123 更新时间:2023-11-30 18:42:32 25 4
gpt4 key购买 nike

我有一个带有一些控件的 winform。
当光标进入表单时(表单边界,这包括表单的内容)我想触发特定任务。当光标离开表单时,我想触发另一个任务。

显然,在表单上看到这些事件是行不通的:(因为,例如,当我从表单本身移动到其他控件时,MouseLeave 将被触发)

this.MouseEnter += (sender, e) =>
{
//do stuff
};

this.MouseLeave += (sender, e) =>
{
//do stuff
};

我也尝试了类似问题中出现的 IMessageFilter 接口(interface),但没有一个给我所需的结果!问题是检测鼠标何时完全离开表单。

 public bool PreFilterMessage(ref Message m)
{
switch (m.Msg)
{
case WM_MOUSEMOVE: //or other messages
bool z = myForm.Bounds.Contains(Cursor.Position); //This didn't help
}
eturn false;
}

表单内容中的检测也存在问题(当我在控件之间移动时)。

我错过了什么?

更新:我不想使用计时器!

最佳答案

您可以获得指针的当前 x,y 坐标并查看它们是否在表单内。如果不是,则执行非形式任务。

关于c# - 事件冒泡 - 子控件的鼠标悬停事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5655757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com