如果我理解正确,KeyDown事件不能阻止字符键(空格)传递给控件.
但KeyPress事件并没有告诉我Ctrl是否已关闭.
但是如果Ctrl关闭,我只需要取消空格.
如果ctrl也关闭,如何阻止编辑控件接收空格键?
目的:我有一个文本框,我正在从中提出搜索建议.我想使用快捷键ctrl + space弹出建议.但在这种情况下,我不想在编辑文本中添加空格.
KeyPress事件不会告诉我Ctrl是否已关闭.
不,但您可以使用Win32 GetKeyState()
功能.
如果ctrl也关闭,如何阻止编辑控件接收空格键?
像这样:
procedure TForm58.Edit1KeyPress(Sender: TObject; var Key: Char); begin if (Key = ' ') and (GetKeyState(VK_CONTROL) < 0) then begin Key := #0; // do something... end; end;