自動調節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