CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

为什么我的 FormKeyPress 对ESC键没有响应?

楼主general001(我想当一名将军,可惜我还是一个小兵)2005-06-01 20:56:27 在 C++ Builder / 基础类 提问

为什么我的   FormKeyPress   对ESC键没有响应?对SHIFT+ESC才有响应?响应的KEY=\X1B和ESC键一样。  
  我应该怎样做才可以让FormKeyPress对ESC键响应。求教各位,不胜感谢! 问题点数:50、回复次数:14Top

1 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2005-06-01 21:32:22 得分 0

void   __fastcall   TForm1::FormCreate(TObject   *Sender)  
  {  
  this->KeyPreview=true;  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::FormKeyPress(TObject   *Sender,   char   &Key)  
  {  
  if(Key=='\x1b')Close();  
  }Top

2 楼jemyzhang(妙狐)回复于 2005-06-02 00:28:29 得分 0

好像要再FormDown时间里面才有响应Top

3 楼cczlp(不惑)回复于 2005-06-02 07:39:40 得分 0

有的只在KeyPress里,有的只在KeyDown里,楼主可以自己试试Top

4 楼songhtao(三十年孤独)回复于 2005-06-02 09:11:50 得分 0

OnKeyDown看看Top

5 楼woainihaha(笨笨)回复于 2005-06-02 10:01:01 得分 0

1。必须设置KeyPreview为true  
  2。你对按键的值必须正确  
  至于你放在那部分都可以,1楼的是正解Top

6 楼Microsnow(冰火)回复于 2005-06-02 11:47:13 得分 20

我之前的经验是:OnKeyPress()里只对某些键(回车等)有响应;  
  但是在OnKeyDown()里只要设置Form的KeyPreview为true,就可以响应所有按键,前提是Form必须获得焦点.  
  Top

7 楼wtl526(wtl)回复于 2005-06-02 11:48:10 得分 0

cczlp   说的对,有的只能在KEYPRESS里,有的只能在KEYDOWN里,  
  换到KEYDOWN试试Top

8 楼scanmaymaymay(yyc)回复于 2005-06-02 12:04:13 得分 0

到底那个说得对,糊涂了  
  自己试试才知道Top

9 楼general001(我想当一名将军,可惜我还是一个小兵)回复于 2005-06-02 13:05:43 得分 0

谢谢各位,其实我已经象一楼那样做了,但还是没有用,可以对回车键响应,但对ESC键没有响应,还有就是   Microsnow(冰火)兄说的“   Form必须获得焦点”,FORM里的控件获得了焦点可以理解为FORM获得了焦点吗?但此时还是没有作用.  
   
  Top

10 楼general001(我想当一名将军,可惜我还是一个小兵)回复于 2005-06-02 13:08:40 得分 0

用OnKeyDown()也没有用。Top

11 楼JiangJason()回复于 2005-06-02 15:39:23 得分 0

void   __fastcall   TForm1::FormKeyPress(TObject   *Sender,   char   &Key)  
  {  
  if(Key=='\x1b')  
  {  
      ShowMessage((int)Key);  
      }  
  }  
   
  在我的机上好用!Top

12 楼general001(我想当一名将军,可惜我还是一个小兵)回复于 2005-06-02 17:01:29 得分 0

我的空Form上也可以,但我现在有一个好多控件的Form上就不能用了,我不知道在哪里出了问题,我现在只能用回车键了。我还是希望有知道原因的能帮我一下。Top

13 楼chpst(斗转星移)回复于 2005-06-03 09:43:25 得分 30

Form1->SetFocus();  
        Form1->KeyPreview=true;Top

14 楼general001(我想当一名将军,可惜我还是一个小兵)回复于 2005-06-03 10:10:05 得分 0

原来还是焦点问题,FORM里的控件获得了焦点不可以理解为FORM获得了焦点。谢谢各位。Top

相关问题

  • JDialog如何响应键盘ESC
  • Esc键响应不了location="index.htm"?
  • 如何使对话框不响应Enter键与ESC键?
  • 如何让Button响应快捷键回车"Enter"和退出"Esc"!!
  • 如何在处理数据时响应ESC键使程序中断?
  • vb.net 响应键盘
  • 响应键的问题
  • 有关键盘响应的
  • 如何响应回车键
  • 键盘的响应函数

关键词

  • 控件
  • formkeypress
  • x1b
  • 响应
  • esc键
  • keypreview
  • 焦点
  • 获得
  • fastcall tform
  • 楼

得分解答快速导航

  • 帖主:general001
  • Microsnow
  • chpst

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo