如何让DATAGRID中的列宽能随着其中的单元格内的文本内容的长度变化,即让DATAGRID的列宽自动调整大小

解决方案 »

  1.   

    只能用时间跟踪.Dim R As Long
    Dim C As LongPrivate Sub DataGrid1_Change()
           Label1.Caption = DataGrid1.Text
    End SubPrivate Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)        Dim Str As String
            
            C = DataGrid1.ColContaining(X)
            R = DataGrid1.RowContaining(Y)
            Str = Adodc1.Recordset.Fields(C)
            Label1.Caption = Str
            
    End SubPrivate Sub Form_Load()
          Label1.AutoSize = True
          Timer1.Interval = 50
    End SubPrivate Sub Timer1_Timer()
        Dim CSize  As Long
        
        On Error Resume Next
        
        CSize = DataGrid1.Columns(C).Width
        If Label1.Width > CSize Then
           DataGrid1.Columns(C).Width = Label1.Width
        End If
    End Sub
      

  2.   

    如何让DATAGRID中的列宽能随着其中的单元格内的文本内容的长度变化,即让DATAGRID的列宽自动调整大小
    ///////////判斷你的文字長度,然後改變colwidth(i),但是依然需要timer監控
      

  3.   

    完全可以在你往datagrid中写内容的时候,控制各个单元格的宽度阿。
    这样写就可以DataGrid1.Columns(i).Width=TextWidth("你的单元格里边的字符串")
      

  4.   

    但TextWidth输出的是FROM字号的宽度.
    如果网格的字号是12呢?