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
说明:以上模块实现MSHFlexGrid的单元格根据内容自动调整宽度.
调用方式
call AdjustColWidth(Form_Name,MSHFlexGrid_Name)
'设置MSHFlexGrid每行的颜色
Public Sub SetRowColor(ByRef MSHFlexGrid As Object)
Dim j, i, objName
objName = TypeName(MSHFlexGrid)
If StrConv(Trim(objName), vbUpperCase) <> "MSHFLEXGRID" Then
Exit Sub
End If
MSHFlexGrid.FillStyle = 1
For i = 1 To MSHFlexGrid.Rows - 1
MSHFlexGrid.Row = i
If i Mod 2 = 0 Then
MSHFlexGrid.Col = 0
MSHFlexGrid.ColSel = MSHFlexGrid.Cols - 1
MSHFlexGrid.CellBackColor = &amp;HC0FFC0
End If
Next i
MSHFlexGrid.FillStyle = 0
MSHFlexGrid.Row = 0
MSHFlexGrid.Col = 0
End Sub
以上两个建议放在公共模块中,第一个自动调整宽度的过程在调用的时候需要注意窗体名称和窗体中的MSHFlexGrid控件的名称.别在A窗体调用出B窗体的控件…
版权所有,转载时必须以链接形式注明作者和原始出处及本声明:KingLife@无忧岛
本文链接: http://www.islandcn.com/post/292.html
Tags: MSHFlexGrid, VB
近期评论