Delphi:dbgrid 单元格按 Enter 转到下一个单元格

use*_*332 1 delphi ms-access

我正在使用 ADO 组件连接 Delphi 2010 上的 Access 数据库。我希望,作为 MS Excel,当按 ENTER 时,adotable.post 和下一个下面的单元格将被选中。

 procedure TForm4.DBGrid1Enter(Sender: TObject);
 begin
 adotable1.Edit;
 adotable1.Post;
 ....{below cell will be selected}
 end;
Run Code Online (Sandbox Code Playgroud)

Mar*_*ynA 6

下面的代码非常简单,应该可以满足您的需求。

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_Return then 
    Key := VK_Down;
end;
Run Code Online (Sandbox Code Playgroud)

顺便说一句,此代码将用于代替 q 中的代码。

(这个答案取代了我之前发布的一个涉及操纵为网格提供数据的数据集的答案,并且在所有情况下都不起作用,例如当 dgMultiSelect 设置为 true 时)。