关于delphi的edit1问题,我想按键切换edit1和edit2,(100分)

如图我有三个edit,分别是edit1到edit3我就是想当我按下的时候,光标由edit1切到edit2,,再按下时光标由edit2切到edit3,,按上又切回前一个,大... 如图 我有三个edit,分别是edit1到edit3我就是想当我按下的时候,光标由edit1切到edit2,,再按下时光标由edit2切到edit3,,按上又切回前一个,大家可以用edit1.setfocus,不过如果用了两个setfocus就有问题,如果有自己的方法也行,,谢谢啦 展开
 我来答
遒劲且威武的小白桦s
2011-11-28 · TA获得超过115个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:190万
展开全部
如果控件少的话,很容易实现的
分别在三个edit的 OnKeyPress 事件里面添加对按键的判断 就拿edit2来举例
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = #40 then
edit3.SetFocus
else
if key = #38 then
edit1.SetFocus;
end;

edit1和edit3 同理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu55721
2011-11-27 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:871万
展开全部
焦点移动问题,在窗体显示事件中,用edit1.setfocus使edit1得到焦点,然后在每个edit组件的键按下事件中KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=VK_Return) or (key=VK_next) then//按换行键或下一页键
edit2.SetFocus;或者edit1.SetFocus,或者edit3.SetFocus
if key=VK_prior then//按上一页键
edit1.SetFocus;
end;
如此写代码就行了。没有什么问题。我长期如此的写,如果按住换行键不放,焦点就会循环移动。 如果你认为这办法都不行的话,那就真没招了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fauxvis
2011-11-27 · TA获得超过263个赞
知道小有建树答主
回答量:368
采纳率:0%
帮助的人:402万
展开全部
窗口里放三个控件,然后Delphi菜单->Edit->Tab Order由上至下设置循序,
这样按Tab键就可以切换光标了

如果还想用Enter键代替Tab键(不是很推荐)
窗口的KeyPreView设为True
在窗口的OnKeyPress事件里加入
if key=#13 then //如果按Enter键
begin
key:=#0; //不处理按Enter键
Perform(WM_NEXTDLGCTL, 0, 0); //发送一个消息跳到下一个控件
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式