在form 中的FormKeyPressProcedure TForm1.FormKeyPress(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; 然后在dbgrid 的onKeyPress中 begin keypress(key); end;
1.dbgrid procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if form1.DBGrid1.SelectedIndex<=form1.DBGrid1.FieldCount-1 then form1.DBGrid1.SelectedIndex:=form1.DBGrid1.SelectedIndex+1 else form1.DBGrid1.SelectedIndex:=0; end; end;
2.stringgrid procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if form1.StringGrid1.Col<form1.StringGrid1.ColCount-1 then form1.StringGrid1.Col:=form1.StringGrid1.Col+1 else begin if form1.StringGrid1.Row<form1.StringGrid1.RowCount-1 then begin form1.StringGrid1.Row:=form1.StringGrid1.Row+1; form1.StringGrid1.Col:=0; end; end; end; end;
在form 中的FormKeyPressProcedure TForm1.FormKeyPress(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; 然后在dbgrid 的onKeyPress中
begin
keypress(key);
end;
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if form1.DBGrid1.SelectedIndex<=form1.DBGrid1.FieldCount-1 then
form1.DBGrid1.SelectedIndex:=form1.DBGrid1.SelectedIndex+1
else
form1.DBGrid1.SelectedIndex:=0;
end;
end;
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if form1.StringGrid1.Col<form1.StringGrid1.ColCount-1 then
form1.StringGrid1.Col:=form1.StringGrid1.Col+1
else
begin
if form1.StringGrid1.Row<form1.StringGrid1.RowCount-1 then
begin
form1.StringGrid1.Row:=form1.StringGrid1.Row+1;
form1.StringGrid1.Col:=0;
end;
end;
end;
end;