小编在优化时遇到了一个界面问题,非常影响用户使用的体验度和满意度,重要至极——所有使用MSHFlexGrid控件显示查询内容时都会出现内容显示不全,如查询到的日期显示为:19-04-05,即内容没有完全显示为2019-04-05正确的格式。
遇到问题有需求就要解决问题啦^ _ ^!查询博客,站在巨人的肩膀上果然让我学习收获的更快,前有师哥解决过此类问题,我们先模仿,再吸收变为自己的知识吧!
解决方法:
首先在模块里面定义一个过程,具体方法如下:
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)) > dbwidth Then
dblwidth = frmCur.TextWidth(.TextMatrix(j, i))
End If
Next
.ColWidth(i) = dblwidth + dblIncWidth + 1700 '此处1700数值可以根据自己表格界面的情况更改
End If
Next
End With
End Sub
解释说明:以上模块实现MSHFlexGrid的单元格根据内容自动调整行高列宽。
调用方式:
AdjustColWidth 窗体名,MSHFlexGrid(控件名称)
Private Sub Form_Load() '如:收取金额窗体调用
AdjustColWidth frmaskcollectcash, MyFlexGrid
End Sub