Delphi 如何在devexpress网格中保持当前位置

Delphi 如何在devexpress网格中保持当前位置,delphi,devexpress,Delphi,Devexpress,我使用此代码在刷新数据集后保存当前选定的记录 bm := table1.GetBookmark; try table1.Refresh; table1.GotoBookmark(bm); finally table1.FreeBookmark(bm); end; 但是,如果我在网格中间选择一条记录,在执行此代码后,它仍然是当前选中的记录,但它会跳转或使网格滚动成为当前视图中的第一条记录。如何保持当前位置?记住当前焦点行,然后在刷新后设置它 下面是C#代码的示例,但我认为,对于dep

我使用此代码在刷新数据集后保存当前选定的记录

bm := table1.GetBookmark;
try
  table1.Refresh;
  table1.GotoBookmark(bm);
finally
  table1.FreeBookmark(bm);
end;

但是,如果我在网格中间选择一条记录,在执行此代码后,它仍然是当前选中的记录,但它会跳转或使网格滚动成为当前视图中的第一条记录。如何保持当前位置?

记住当前焦点行,然后在刷新后设置它

下面是C#代码的示例,但我认为,对于deplhi来说是一样的:

var row = _gridView.FocusedRowHandle;
_gridView.RefreshData();
_gridView.SelectRow(row);

记住当前焦点行,然后在刷新后设置它

下面是C#代码的示例,但我认为,对于deplhi来说是一样的:

var row = _gridView.FocusedRowHandle;
_gridView.RefreshData();
_gridView.SelectRow(row);

我使用devart IBDAC组件TIBCQuery组件。对于网格,我使用devexpress网格。如果您使用的是TcxGrid,我想最好询问Devex。我对这个问题的回答(关于TDBGrid)可能会给你一些想法:我使用devart IBDAC组件TIBCQuery组件。对于网格,我使用devexpress网格。如果您使用的是TcxGrid,我想最好询问Devex。我对这个问题(关于TDBGrid)的回答可能会给你一些想法: