delphi - 禁用键盘快捷键(delphi)

标签 delphi shortcut keyboard-shortcuts

我在 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/

相关文章:

python - Python 中用于变量重复操作的快捷方式?

keyboard-shortcuts - iTerm2 交换 Pane 键盘快捷键

java - 如何使 Ctrl-C、Ctrl-X 在 Eclipse 中与 IntelliJ 一样工作

delphi - 如何向网上经纪服务应用程序添加日志过滤器?

algorithm - 快速过滤的数据结构(Delphi)?

java - 使用 Tab 键盘在方法的参数之间切换的 Eclipse 快捷方式

visual-studio-2012 - 是否有用于在 Visual Studio 2012 测试资源管理器 View 中选择失败的单元测试的键盘快捷键?

delphi - 使用 Show 伪造模态对话框?

delphi - 为什么 Firemonkey 组合中缺少 & 符号?

ubuntu - 在 Nautilus 侧面板中选择项目的快捷方式?