如何判断上下文菜单是用鼠标点击还是用热键点击?

时间:2012-10-30 17:44:04

标签: c# winforms hotkeys

我有一个带有上下文菜单的DataGridView。一个菜单项是Copy(使用Ctrl + C热键。)我要做的就是获取当前鼠标位置以复制用户右键单击的单元格,或者如果他们使用热键,则获取当前选定的单元格。在这两种情况下,menu_Click事件都会被触发。如何判断它是来自热键还是上下文菜单?

1 个答案:

答案 0 :(得分:1)

据我所知,您可以Hook所有MouseKeyboard事件来检测输入源。

您应该查看此 CodeProject 文章,Processing Global Mouse and Keyboard Hooks in C#

MSDN Reference

  

全局挂钩监视与调用线程在同一桌面中的所有线程的消息。 特定于线程的挂钩仅监视单个线程的消息。可以在与调用线程相同的桌面中的任何应用程序的上下文中调用全局钩子过程,因此该过程必须位于单独的DLL模块中。只在相关线程的上下文中调用特定于线程的钩子过程。