我目前有一个 NotifyIcon 作为 Windows 窗体应用程序的一部分。我想在双击图标时显示/隐藏表单,并在单击时显示气球提示。我有两个功能分开工作,但我找不到让应用程序区分单击和双击的方法。现在,它将双击视为两次点击。
如果检测到第二次点击,是否有办法阻止单击事件?
最佳答案
不幸的是建议处理MouseClick
事件不适用于 NotifyIcon
类 - 在我的测试中 e.MouseClicks
始终为0,从reference source也可以看出.
我看到的比较简单的方法是延迟处理Click
使用表单级别标志的事件,async
处理程序和 Task.Delay
:
bool clicked;
private async void OnNotifyIconClick(object sender, EventArgs e)
{
if (clicked) return;
clicked = true;
await Task.Delay(SystemInformation.DoubleClickTime);
if (!clicked) return;
clicked = false;
// Process Click...
}
private void OnNotifyIconDoubleClick(object sender, EventArgs e)
{
clicked = false;
// Process Double Click...
}
唯一的缺点是在我的环境中处理 Click
延迟半秒(DoubleClickTime
是 500 毫秒)。
关于c# - 在 C# 中区分 Click 和 DoubleClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44184040/