如何使MSFlexGrid列宽,根据其字段长度,自动更改宽度?

解决方案 »

  1.   

    With Mfg_Cos_Shi
            .Cols = xxx
            .FixedCols = xxx
            .FixedRows = xxx
       ....................
        For I = 1 To .Cols - 1
                .Row = 0
                .Col = I
                .ColWidth(I) = Len(rs.fields(x))* 200
                .CellAlignment = flexAlignCenterCenter
        ................
        Next I
        End With
      

  2.   

    这是一个通用的自动调节列宽的函数Public Sub AdjustColWidth(frmCur As Form, gridCur As Object, Optional bNullRow As Boolean = True, Optional dblIncWidth As Double = 0)
    '--------------------------------------------------------------------
    '功能:
    '       自动调整Grid各列列宽为最合适的宽度
    '参数:
    '       [frmCur].........................................当前工作窗体
    '       [gridCur]........................................当前要调整的Grid
    '--------------------------------------------------------------------
    Dim i, j As Integer
    Dim dblWidth As Double
        With gridCur
            For i = 0 To .Cols - 1
                dblWidth = 0
                If .ColWidth(i) <> 0 Then
                    For j = 0 To .Rows - 1
                        If frmCur.TextWidth(.TextMatrix(j, i)) > dblWidth Then
                            dblWidth = frmCur.TextWidth(.TextMatrix(j, i))
                        End If
                    Next
                    .ColWidth(i) = dblWidth + dblIncWidth + 100
                End If
            Next
        End With
        
    End Sub