当前位置:  开发笔记 > 编程语言 > 正文

KeyDown KeyPress难题 - 如何在Ctrl +空格中取消空格

如何解决《KeyDownKeyPress难题-如何在Ctrl+空格中取消空格》经验,为你挑选了1个好方法。

如果我理解正确,KeyDown事件不能阻止字符键(空格)传递给控件.

但KeyPress事件并没有告诉我Ctrl是否已关闭.

但是如果Ctrl关闭,我只需要取消空格.

如果ctrl也关闭,如何阻止编辑控件接收空格键?

目的:我有一个文本框,我正在从中提出搜索建议.我想使用快捷键ctrl + space弹出建议.但在这种情况下,我不想在编辑文本中添加空格.



1> Remy Lebeau..:

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;

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有