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

vb中自动调整控件的大小

发布时间:2020-12-17 08:05:04 所属栏目:百科 来源:网络整理
导读:机房收费系统中有很多查询记录类的窗体用到了MSHFlexGrid控件。当没有调整该控件的大小时,查询结果可能会如图所示: 而我们需要的是: 这本来是一个很简单的调整MSHFlexGrid列宽的问题,只需要设置 AllowUserResizing即可,如图: 但是我刚开始没有注意到这

机房收费系统中有很多查询记录类的窗体用到了MSHFlexGrid控件。当没有调整该控件的大小时,查询结果可能会如图所示:


而我们需要的是:


这本来是一个很简单的调整MSHFlexGrid列宽的问题,只需要设置AllowUserResizing即可,如图:


但是我刚开始没有注意到这个属性,所以就百度了自动调整MSHFlexGrid列宽的方法,需要自定义一个过程:

Public Sub AdjustColWidth(frmCur As Form,gridCur As Object,Optional bNullRow As Boolean = True,Optional dblIncWidth As Double = 0)
    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
然后再调出 :Call AdjustColWidth(frmLineHis,myFlexGrid)
这个过程的关键就是要知道form窗体有TextWidth方法 Textwidth方法则返回一个文本字符串的宽度值。

因为知道了Textwidth方法,我们就能使任何输入内容为文本字符类控件自动调节到最适合宽度,因为还有TextHeight方法,我们就能调整任何输入内容为文本字符类控件自动调节到最适合高度。我们知道label控件有AutoSize属性,而把上述代码封装起来就是输入内容为文本字符类控件的AutoSize属性。

问题虽小,但是有一个从特殊到一般思考过程。任何问题都能归类,任何解决问题的方法提升后都能解决一类问题!


*自动调整MSHFlexGrid各列列宽为最合适的宽度参考文章:

http://li25686686.blog.163.com/blog/static/3684873720105644729263/

(编辑:李大同)

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

    推荐文章
      热点阅读