很多時候,我們都用Tab鍵來移動輸入焦點,但是有些情況下,比如輸入用戶名後還需要輸入密碼,由於習慣性,你有可能在輸入用戶名後就按了一下回車,希望到密碼框裡繼續輸入,可是卻按了“確定”鍵,報告密碼錯誤,所以使用以下代碼來讓“回車”鍵代替“TAB”鍵下移一個控件:
在窗體上放兩個控件,Edit1和Edit2,再加入下列代碼攔截擊鍵:
Procedure TForm1.Edit1KeyPress(Sender:Tobject;Var Key:Char);
Begin
if key=#13 then{ 判斷是按執行鍵}
if not (ActiveControl is TDbgrid) Then
Begin { 不是在TDbgrid控件內}
key:=#0;
perform(WM_NEXTDLGCTL,0,0);{移動到下一個控件}
end else
if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件內}
begin
With TDbgrid(ActiveControl) Do
if Selectedindex<(FieldCount-1) then
Selectedindex:=Selectedindex+1{ 移動到下一字段}
else Selectedindex:=0;
end;
End;
由於有時我們會使用到TDbgrid控件,那麼就需要讓按回車鍵下移到下一個字段上,而不是到下一個控件上,所以多了些判斷碼。