1

我想知道是否有一种简单的方法可以判断哪个输入设备触发了特定的 GUI 事件。

例如:一个TButton.OnClick事件被触发。用户是通过键盘按下(快捷Enter键、默认按钮的space键、焦点按钮的键等)触发它还是通过鼠标点击触发?有什么简单的方法可以分辨吗?

我想知道的原因是,当用户使用鼠标启动也可以使用键盘完成的操作时,我可以在我们的一些应用程序中实现键盘使用提示。我们在车间的系统处于非常多尘/肮脏的环境中,老鼠在其中往往不能很好地支撑。此外,在许多情况下,鼠标的使用空间根本就没有那么大。(不,没有数字小键盘的键盘不是解决方案。它们过于依赖。)

然而,由于我们的应用程序在 Windows 中运行,用户倾向于像在家里一样简单地使用这些程序——用鼠标。这并没有什么特别的问题,但我们一直在努力优化输入工作流程,使其也对键盘友好。如果有一种低影响的方式来向我们的用户表明有一种方法可以让他们做他们正在做的事情而不必抓住鼠标,那就太好了。

4

1 回答 1

4

没有办法从内部说出来OnClick。但是,您也可以将事件附加到将在鼠标悬停时触发的控件,这可能更适合您尝试执行的操作。看看OnMouseEnterOnMouseLeave事件。此外,如果您真的希望在单击鼠标时发生特定的事情,您可以将其附加到OnMouseUp.

于 2012-01-27T18:10:14.430 回答