删除dbgrid中的某条记录以后,用requery刷新,怎样使光标停留在已删除记录的上一条获下一条上?

解决方案 »

  1. 1.用BookMark:删前先使一个BookMark定位其前或其后一条记录上,Requery后再GotoBookMark;
    2.用Locate:删前先取其前或其后一Key值,Requery后再Locate定位过去。
      

  2. 也许有点帮助
    procedure TForm1.Button2Click(Sender: TObject);
    var b:TBook;
    begin
        with dbgrid1.DataSource.DataSet do
        begin
        b:=GetBook;
        next;
        gotobook(b);
        end;
    end;
      

  3. 就是这样。
    如果要避免指针移动时影响屏幕显示,还可以用dataset.disablecontrols和enablecontrols
      

  4. 判断一下再移动指针:if not EOF then NEXT;
      

aliyun

类似问题 »