Ctrl+Backspace in Delphi Controls

a 夏天 提交于 2019-12-09 15:57:09

问题


the Ctrl+Backspace keyboard shortcut normally deletes the word to the left from the caret. But it does not work in any of the standard Delphi controls you would expect (TEdit, TMemo, TComboBox ect.). Interestingly, Ctrl+Delete works just fine.

Does anybody know how to correct this behaviour easily?

I know that overriding the KeyDown procedure would do it, but this is a rather too complicated as KeyDown has to be overridden for every component.


回答1:


This is not a Delphi-specific issue. Indeed, TEdit and the other controls are merely wrappers for the native Microsoft Windows controls, and they behave like this. Try, for instance, the edit box in Notepad's 'Select Font' dialog. Edit controls with auto-completion enabled, however, accept the Ctrl+Backspace hotkey. I think you can enable this easily by

SHAutoComplete(Edit1.Handle,
  SHACF_AUTOAPPEND_FORCE_OFF or SHACF_AUTOSUGGEST_FORCE_OFF)

(uses ShLwApi).



来源:https://stackoverflow.com/questions/10305634/ctrlbackspace-in-delphi-controls

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!