各位大侠,帮帮忙

解决方案 »

  1.   

    用DBGrid1.Canvas.TextWidth算出每列的最大宽度吧。然后调整。
      

  2.   

    to qinfarmer() 
    那个DBGRID的中缝双击事件应该是哪个?
      

  3.   

    没有人有好招吗?
    前天朋友介绍了一个控件包,ehlib,这个控件能满足要求,而且有很多其它很炫的功能。
      

  4.   

    http://www.cnkernel.com/wncx.rar  有个例子,你看看吧。
      

  5.   

    给你贴段代码:
    procedure TForm1.SetGridColumnWidths(Grid: Tdbgrid);
    const
      DEFBORDER = 10;
    var
      temp, n: Integer;
      lmax: array [0..30] of Integer;
    begin
      with Grid do
      begin
        Canvas.Font := Font;
        for n := 0 to Columns.Count - 1 do
          lmax[n] := Canvas.TextWidth(Fields[n].FieldName) + DEFBORDER;
        grid.DataSource.DataSet.First;
        for n := 0 to Columns.Count - 1 do
        Columns[n].Width := (DBGrid1.Width-30) div
    Columns.Count-1;
      end; { With }
    end; {SetGridColumnWidths  }
    procedure TForm1.DBGrid1DrawColumn(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
        SetGridColumnWidths(dbgrid1);
    end;