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/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Openwrt学习笔记(二)——Flash Layout and file system
- 正则表达式pattern内部\\\\用法
- 为什么JSF 2.2需要更多时间在Wildfly上部分呈现ajax请求
- U_boot 的 bootcmd 和bootargs参数详解
- c# – Code在Visual Studio 2012中没有遇到断点
- Firebase 新手指南:使用 Swift 构建一款简单的社交应用
- 使用StAX解析XML
- ajax核心技术---XMLHttpRequset对象的使用
- c# – 在循环外声明循环索引变量有什么好处?
- ruby – 在Logstash中转换时间戳时区以获取输出索引名称