delphi中如何实现ENTER键后按需要自动跳转到输入框

例:一共有三个输入框分别是:edit1,edit2,edit3。需要在输入时先输入edit1按enter后再输入edit2,enter后再输入edit3;... 例:一共有三个输入框 分别是:edit1,edit2,edit3。需要在输入时先输入edit1 按enter后再输入edit2,enter后再输入edit3; 展开
 我来答
若以下回答无法解决问题,邀请你更新回答
己闻楣Sx
2011-03-10 · TA获得超过1935个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:909万
展开全部
一、傻瓜式
在edit1和edit2上分别编写按键抬起事件处理过程,大致如下:
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
Edit2.SetFocus;
end;
procedure TForm1.Edit2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
Edit3.SetFocus;
end;

二、进阶式
比刚才那个的需求增强一些,在edit3上按回车,循环到edit1,为edit1、edit2和edit3安排统一的按键抬起处理过程,且分别设置它们的属性Tag为1、2、3;如果需求不要增强的,将下面的数组定义中去掉最后一个,且edit3上不挂该按键抬起事件过程即可。
procedure TForm1.EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
const
C_asEditName : array[ 1..3 ] of string = ( 'edit2', 'edit3', 'edit1' );
var
X : TWinControl;
begin
if Key <> VK_RETURN then
Exit;
X := TWinControl( FindComponent( C_asEditName[ TEdit( Sender ).Tag ] ) );
if Assigned( X ) then
X.SetFocus;
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式