10

键盘快捷键通常会从插入符号中Ctrl+Backspace删除左侧的单词。但它不适用于您所期望的任何标准 Delphi 控件(TEdit、、TMemoTComboBox)。有趣的是,Ctrl+Delete工作得很好。

有人知道如何轻松纠正这种行为吗?

我知道重写该KeyDown过程会做到这一点,但这太复杂了,因为KeyDown必须为每个组件重写。

4

1 回答 1

17

这不是 Delphi 特有的问题。实际上,TEdit其他控件只是本机 Microsoft Windows 控件的包装器,它们的行为是这样的。例如,尝试使用记事本“选择字体”对话框中的编辑框。在启用自动完成的情况下编辑控件,但是,接受 Ctrl+Backspace 热键。我认为您可以通过以下方式轻松启用此功能

SHAutoComplete(Edit1.Handle,
  SHACF_AUTOAPPEND_FORCE_OFF or SHACF_AUTOSUGGEST_FORCE_OFF)

(使用ShLwApi)。

于 2012-04-24T20:42:58.897 回答