Sko*_*der 6 c# event-handling notifyicon winforms mousedown
我在系统托盘中有一个NotifyIcon.如何检测用户何时左键单击它?我假设MouseDown
事件将是我想要使用但它只处理右键单击和中键单击.对于左键单击,它仅在用户放开后触发(就像他们刚刚执行了正常点击一样).有没有办法只获取MouseDown事件?
这是设计使然,shell 从 up 事件中合成 MouseDown 消息。当您单击并按住按钮然后开始拖动时,您就会明白为什么它会这样工作。请注意通知区域溢出窗口是如何弹出的,并允许您将图标拖入其中以将其从可见区域中删除。它不能双向发挥作用。
从技术上讲,您可以挂钩 Explorer.exe 拥有的窗口,以便在 Explorer 使用 SetWindowsHookEx() 之前破解消息。然而,这需要一种无法用 C# 编写的 DLL,它需要注入到资源管理器中。非常不稳定,很难击败试图做同样事情的竞争对手。这种代码也会让 Microsoft appcompat 团队彻夜难眠。
归档时间: |
|
查看次数: |
546 次 |
最近记录: |