我用ADO连接Access数据库,用dbgrid显示数据表,请问如何在拉动滚动条时将某一列一直显示在最左侧

解决方案 »

  1.   

    可以考虑变通处理用两个dbgrid一个固定某以列,另外一个去滚动
      

  2.   

    好像不行呀因为没有这样的功能。。除非用俩个。一个DBGRID显示一个字段值。
      

  3.   

    类似于Excel的列/行冻结是么? DBGrid做不了 ,不嫌麻烦就用StringGrid做,判断滚动条的滚动方向,然后做 for i:=1 to StringGrid.ColCount-1 do
                   StringGrid.Col[i]:= StringGrid.Col[i+1]  //向右滚动
                   StringGrid.Col[i+1]:= StringGrid.Col[i]  //向左滚动                 
      

  4.   

    TStringGrid(DBGrid1).FixedCols :=2就可以了
      

  5.   

    补充:固定n列是:TStringGrid(DBGrid1).FixedCols :=n+1就行了。
      

  6.   

    用StringGrid做吧,他有好多好处的
      

  7.   

    TStringGrid控件不是数据显示控件来的,不能连数据库的;
    是先把数据读到本地,比如读到一个TQurey中,
    再加到TStringGrid中的,如:
    var
      i:integer;
    begin
      StringGrid1.RowCount:=Query1.RecordCount+1;
      StringGrid1.ColCount:=Query1.FieldCount;
      Query1.First;
      j:=1;
      for i:=0 to Query1.FieldCount-1 do StringGrid1.Cells[i,0]:=Query1.Fields[i].Name;
      while not Query1.Eof do
      begin
        for i:=0 to Query1.FieldCount-1 do StringGrid1.Cells[i,j]:=Query1.Fields[i].AsString;
        j:=j+1;
        Query1.Next;
      end;
      StringGrid1.FixedCols:=1;//设置哪几列是固定的;
    end;
      

  8.   

    TStringGrid(DBGrid1).FixedCols :=2就可以了这种方法不行,应为在Delphi7中Fixed的Column会变成白色。很难看
    建议楼主还是找一个第三方的控件
    如果不愿意,就用两个DBGrid来模拟,控制起来有点麻烦
      

  9.   

    TStringGRid要这样用吗?那也太麻烦了,谁能告诉我TStringGRid一般用在何处?
    谢谢!!!
      

  10.   

    各位你们说的TStringGrid是Delphi中的自带控件吗?我用的是Delphi6.0,好像没有这样的控件啊,请问在哪里有啊?
      

  11.   

    to  wang_yong(糖豆豆)
     additional