机房收费系统 & 【查询显示窗体 & MSHFlexGrid控件自动调整行高列宽】

小编在优化时遇到了一个界面问题,非常影响用户使用的体验度和满意度,重要至极——所有使用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
调用的函数放在公共模块中,在每个窗体调用函数自动调整宽度的过程,需要注意窗体名称和窗体中的MSHFlexGrid控件的名称,不要在A窗体调用出B窗体的控件导致出现问题!

猜你喜欢

转载自blog.csdn.net/Ginny97/article/details/89078141