gpt4 book ai didi

c# - mouseenter 和 mousehover 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 18:01:21 25 4
gpt4 key购买 nike

在 C# Windows 应用程序中有 2 种不同的鼠标事件,MouseEnterMouseHover,当光标悬停在对象上时,它们都会被触发。

它们有什么区别?

最佳答案

假设您在 Windows 窗体中:

发生鼠标输入:

Occurs when the mouse pointer enters the control.

( MSDN )

鼠标悬停:

Occurs when the mouse pointer rests on the control.

A typical use of MouseHover is to display a tool tip when the mouse pauses on a control within a specified area around the control (the "hover rectangle"). The pause required for this event to be raised is specified in milliseconds by the MouseHoverTime property.

( MSDN )

要全局设置 MouseHoverTime(不推荐,请参阅@IronMan84 的链接 here 以获得更好的解决方案),您可以使用 SystemParametersInfo 函数。因为这是 Win32 API 调用,所以您需要 PInvoke:

[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SystemParametersInfo(SPI uiAction, uint uiParam, IntPtr pvParam, SPIF fWinIni);

称为:

SystemParametersInfo(SPI.SPI_SETMOUSEHOVERTIME, 
desiredHoverTimeInMs,
null,
SPIF.SPIF_SENDCHANGE );

来自 PInvoke.NET 的签名:SystemParametersInfo , SPIF (Enum) , SPI (Enum)

我没有在此处包括 Enum 签名,因为它们太长了。只需使用 PInvoke.Net 上的那些(上面链接)

有关 SystemParametersInfo API 调用及其参数的完整信息,请参阅 MSDN .

关于c# - mouseenter 和 mousehover 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27493093/

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