怎么让窗体上TabOrder=0的Edit获得输入焦点

leemingsong 2002-03-16 03:33:37
怎么让窗体上TabOrder=0的Edit获得输入焦点???
...全文
78 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
贾无民 2002-03-16
  • 打赏
  • 举报
回复
实际上,TabOrder=0的TEdit本身就自动取得输入焦点,但要注意在拥有父容器时,必须是父容器的TabOrder也是0才可以,处理办法:1、父容器TabOrder=0;
2、父容器是窗体的ActiveControl。
注意:以上条件存立的前提必须是“以上所述各控件的TabStop=True”
windindance 2002-03-16
  • 打赏
  • 举报
回复
把TEdit改为TWinControl
Hillside 2002-03-16
  • 打赏
  • 举报
回复
var
wctrl:TWinControl;
begin
for i:=0 to pred(ComponentCount) do begin
if not (Components[i] is TWinControl) then continue;
wctrl:=TWinControl(Components[i]);
if wctrl.TabOrder<>DesireTabOrder then continue;
wctrl.SetFocus;
break;
end;
end;
leemingsong 2002-03-16
  • 打赏
  • 举报
回复
回复: linux_withwind(随风而去)
因为我想在模板中实现,重新填写的功能,那是焦点可能已经在别的控件了,我想回到第一个不确定类型的输入控件中,怎办?谢谢
leemingsong 2002-03-16
  • 打赏
  • 举报
回复
windindance(风舞轻扬) 的建议可以采用,有没有更简单的方法
假如我Taborder=0的控件类型不确定呢?TEdit,TComboBox,等等
(我做的是模板,那时是不知道什么控件类型的)
大帮手软件 2002-03-16
  • 打赏
  • 举报
回复
如果taborder=0,其应该是自动获得焦点
windindance 2002-03-16
  • 打赏
  • 举报
回复
for i:=0 to ComponentCount-1 do
if (Components[i] is TEdit) AND ((Components[i] as TEdit).TabOrder = 0) then
((Components[i] as TEdit).SetFocus;
leemingsong 2002-03-16
  • 打赏
  • 举报
回复
我在写模板,那时还不知道具体的Edit名称!
Hillside 2002-03-16
  • 打赏
  • 举报
回复
Edit1.SetFocus;

829

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧