我在 Delphi 中创建了一个表单。
假设我有一个带有 speedbutton
和标签 "&Add"
(下划线 A,作为键盘快捷键)的 Form
和一个 dbgrid
(只读状态)(或其他控件,如TButton
)。
然后我将焦点更改为 Dbgrid
(dbgrid
获得焦点)(或 TButton
)。
每次我按 dbgrid
上的 a 键时,speedbutton
上的 onClick
方法就会触发。
有时我出于某种原因需要禁用它一段时间,然后再次启用它。
如何禁用speedbutton
快捷键?
那么如何再次启用它呢?
最佳答案
当您按 A 时,表单正在按下该按钮,因为该按钮已表示对该键感兴趣,并且表单上没有其他内容接受击键。如果您的表单上有一个编辑框,并且它具有输入焦点,则不会触发该按钮。
您可以使控件指示它在获得焦点时希望接收击键,但这通常发生在编写自定义控件时,您对新控件类在接收键盘输入时应该执行的操作有所了解。
如果您不想触发该按钮,可以将其禁用。另一种选择是在执行通常的点击处理代码之前更改 OnClick 事件处理程序以检查其他条件(例如网格是否具有焦点)。
关于delphi - 禁用键盘快捷键(delphi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14699721/