Delphi控件中的Ctrl + Backspace

oxo*_*oxo 10 delphi vcl

Ctrl+Backspace键盘快捷键正常删除的话,从插入符左侧.但它不工作在任何标准的德尔福控制你所期望的(TEdit,TMemo,TComboBox等.).有趣的是,Ctrl+Delete工作得很好.

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

我知道重写KeyDown程序会做到这一点,但这是一个相当复杂的事情,因为KeyDown必须为每个组件重写.

And*_*and 17

这不是特定于Delphi的问题.实际上,TEdit其他控件只是本机Microsoft Windows控件的包装器,它们的行为就像这样.例如,尝试记事本的"选择字体"对话框中的编辑框.编辑控件并启用自动完成功能,但是,请接受Ctrl + Backspace热键.我认为你可以轻松实现这一目标

SHAutoComplete(Edit1.Handle,
  SHACF_AUTOAPPEND_FORCE_OFF or SHACF_AUTOSUGGEST_FORCE_OFF)
Run Code Online (Sandbox Code Playgroud)

(用途ShLwApi).

  • 此外,调用SHAutoComplete使得无法在Edit的KeyPress事件处理程序中检测到"Enter".你能帮忙评论如何解决这个问题吗? (5认同)