加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

自动调节MSHFlexGrid控件的行高列宽

发布时间:2020-12-15 01:19:18 所属栏目:百科 来源:网络整理
导读:做机房收费系统在做学生上机查看机上记录模块的时候,使用到了MSHFlexGrid这个控件。用这么控件显示数据的时候,遇到了小小的问题。程序运行到显示这个模块的界面的时候,数据总是显示不在界面内,但是导出Execel之后,数据显示是完整的。这是为什么呢?肯定

做机房收费系统在做学生上机查看机上记录模块的时候,使用到了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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读