delphi 如何使用回车键模仿Tab键

 我来答
傅彬郁rO
2013-11-10 · TA获得超过190个赞
知道答主
回答量:184
采纳率:50%
帮助的人:153万
展开全部
然后在FormKeyPress事件中加入以下代码:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);beginif Key = #13 then { 如果按下了回车键 }beginKey := #0{ 吃掉回车键 }
Perform(WM_NEXTDLGCTL, 0, 0); { 移动到下一个控制 }endend这个方法对于大多数控件都适用,但不适用于TButton控件,因为对于按钮,回车键等于按下了按钮,不触发FormKeyPress事件。
答:要改写成一个自定义过程,可以这样:
procedure MyKeyPress(frm:TForm; var Key: Char);beginif Key = #13 then { 如果按下了回车键 }beginKey := #0{ 吃掉回车键 }
frm.Perform(WM_NEXTDLGCTL, 0, 0); { 移动到下一个控制 }endendprocedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);beginMyKeyPress(Self, Key);end如果你经常使用这样的窗体,你也可以在设置好KeyPreview属性和输入代码后,在Form上击右键,选择Add to Repository,这样把Form添加到Delphi的Repository库中,以后建立新窗口时,可以从Delphi的对话框的Forms中选择你添加的这个窗体作为模板。
答:这的确是个问题。可以这样解决:在KeyPress事件中先判断一下控件的类型,如果当前控件是TMemo或TDBMemo(甚至可以进一步检查控件的名字中是否带有Memo的),就不进行移动,对于这样的控件还是通过Tab键移动。下面是代码:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式