RT。比如StringGrid總共有5行,現在要移除第2行,怎樣做?

解决方案 »

  1.   

    不知道别人的方法我的方法把从第三行的记录全体往上移一行 
    然后count -1 用Advstringgrid 吧 这个可以有删除的功能 stringgrid 不行
      

  2.   

    删除内容就是 把cell[x,y] := '';如果还要删除这一行 就开始一行一行的移
      

  3.   

    我原来也被这个问题困扰,倒是没有找到好地解决方案如果你不在乎排序的话,将第5行内容拷贝到第二行,然后Count-1
    如果你希望保持原来的顺序,用楼上的方法吧,不过好像比较慢
      

  4.   

    我是想移除第2行,一般Grid都提供Remove(Row)函數的,這個怎么沒有?有什么簡單方法可以做到?
      

  5.   

    删除内容可以用
    stringgrid1.Cols[].Clear;
    然后再上移吧,好像没有别的办法!
    count-1还是不变,看你的要求了!
      

  6.   

    不行你就用Advstringgrid  这个第三方控件 的确有你说的remove 的功能
      

  7.   

    你是不是想要吧已经删除的记录从表格中删除呀?如果是这样可以重新调用查询语句搜索一次,或者把与表框连接的ADOQUERY进行REFREESH,就可以达到效果了,不知道你是不是想要这样的效果?
      

  8.   

    現在換控件很麻煩,我暫時不考慮。如果StringGrid有1000多行,我只想刪除第2行,那么下面的几百行都一行行的上移,這樣滚屏真的很過癮,呵呵。
      

  9.   

    TCustomGridEx = class(TCustomGrid)TCustomGridEx(StringGrid1).MoveRow(2, 5);
    StringGrid1.RowCount := StringGrid.RowCount - 1;
    應該能夠滿足你的要求吧!
      

  10.   

    procedure DeleteGridRow(AIndex: Integer; AGrid: TStringGrid);
    type
      TCustomGridEx = class(TCustomGrid);
    var
      
    begin
      AGrid.Rows[AIndex].Clear;
      TCustomGridEx(AGrid).MoveRow(AIndex, AGrid.RowCount - 1);
      AGrid.RowCount := AGrid.RowCount - 1;
    end;