用TAB键代替回车键(50分)

  • 主题发起人 主题发起人 bdwlgs
  • 开始时间 开始时间
B

bdwlgs

Unregistered / Unconfirmed
GUEST, unregistred user!
用TAB键代替回车键后,当移到确定键执行完程序后,能否让光标移到第一个EDIT控件上。
 
edit1.setfocus;
 
你所说的是永远到EDIT1移不到下一控件,我是说用TAB键代替回车键向下移,当移到确定
键,执行确定里的代码后,同时跳到EDIT1第一个控件,例;
edit1,edit2,edit3,button1,button2,
输入edit1的内容敲回车移到edit2,再edit3,再button1确定后,再跳到edit1,循环使用。
 
在button1的onclick事件的最后一句使用edit1.setfocus不就行了。
 
if key =#13 then
key =#(Tab 的键值)
 
就是在“确定“按钮的onclick中:edit1.SetFocus;
 
仁兄,讓小弟來給你寫個通用的吧!
你先那Form的Keypreview 設為True
再在Form的Onkeypress事件中寫道
if (key=#13) then
begin
key=#0;
perform(WM_NEXTDLGCTL,0,0);
end;

就這樣,當你在窗口中的輸入控件上按Enter時就可以跳到下一個控件上了!
控件怎樣跳,你就得設置你的Form上的所有控件的Tab次序就行了(可以通過在Form上按鼠標右
鍵來設置Tab次序)
 
procedure TForm1.Form1Down(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if key=13 then
if not(activecontrol is tdbgrid) then
begin
key:=0;
perform(WM_NEXTDLGCTL,0,0);
end else
if (ActiveControl is tdbgrid) then
begin
with tdbgrid(activecontrol)do
if Selectedindex<(fieldcount-1) then
selectedindex:=selectedindex+1
else
selectedindex:=0;
end;
end;
 
遍历你的所有控件,然后可以根据你的tabIndex,比如
If (Sender as TButton).TabIndex=某个值 ,
再去找tabIndex=最小的那个控件
然后setfocus
 
多人接受答案了。
 
后退
顶部