前言
机房收费系统中好多窗体都用到了MSHFlexGrid控件,那么问题就来了,有些东西还有一部分隐藏着,基于用户的体验度,应该让它全部显示出来,因为我们做软件不是自己用的而是给用户用的,为了解决这个问题,试了不少方法,下面就是我的解决方法
方法
首先在模块里定义一个过程,具体代码如下:
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 + 1000
End If
Next
End With
End Sub
声明
说明:以上模块实现MSHFlexGrid的单元格根据内容自动调整行高列宽,调用方式:
AdjustColWidth frmStCheckOnRs, MSHFlexGrid
放在公共模块中,第一个自动调整宽度的过程在调用的时候需要注意窗体名称和窗体中的MSHFlexGrid控件的名称,别在A窗体调用出B窗体的控件