1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vb中自动调整控件的大小

vb中自动调整控件的大小

时间:2018-12-13 08:57:37

相关推荐

vb中自动调整控件的大小

机房收费系统中有很多查询记录类的窗体用到了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 IntegerDim dblWidth As DoubleWith gridCurFor i = 0 To .Cols - 1dblWidth = 0If .ColWidth(i) <> 0 ThenFor j = 0 To .Rows - 1If frmCur.TextWidth(.TextMatrix(j, i)) > dblWidth ThendblWidth = frmCur.TextWidth(.TextMatrix(j, i))End IfNext.ColWidth(i) = dblWidth + dblIncWidth + 100End IfNextEnd WithEnd Sub

然后再调出 :Call AdjustColWidth(frmLineHis, myFlexGrid)

这个过程的关键就是要知道form窗体有TextWidth方法Textwidth方法则返回一个文本字符串的宽度值。

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

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

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

http://li25686686./blog/static/368487375644729263/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。