1. 程式人生 > >自動調節MSHFlexGrid控制元件的行高列寬

自動調節MSHFlexGrid控制元件的行高列寬

做機房收費系統在做學生上機檢視機上記錄模組的時候,使用到了MSHFlexGrid這個控制元件。用這麼控制元件顯示資料的時候,遇到了小小的問題。程式執行到顯示這個模組的介面的時候,資料總是顯示不在介面內,但是匯出Execel之後,資料顯示是完整的。這是為什麼呢?肯定是資料過長,導致該控制元件無法完整的顯示資料。

後來從賈林那裡淘來了一個函式。能夠根據資料自動調整MSHFlexGrid控制元件的行高,列寬。

函式如下:

Option Explicit

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 As Integer
    Dim 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 j
                .ColWidth(i) = dblWidth + dblIncWidth + 100
            End If
        Next i
    End With
   
End Sub
函式的呼叫非常簡單

例如:AdjustColWidth frmStCheckOnRs, MSHFlexGrid