MSHFlexGrid控件在学生信息管理系统的时候就用到了,对它也只是简单的认识,机房收费系统中它就基本上成为了主角,合适的列宽,不仅美观,还是给人一种舒适感。认识一个对象,从他的三要素开始入手,属性、事件、方法。
1、属性介绍:
属性:选择模式0-free,1-by row(选中对应的一整行),2-by column(选中对应的一整列),通过这三个选项,当对MSHFlexGrid中的数据进行修改时候,可以通过修改属性为1-by row,这样可以明显的看出被选中的行。
重要方法:
Additem 向网格中新添加一行
Clear 清除网格的内容
Removeitem 从网格中清除一行
2、调整MSHFlexGrid控件的列宽。
通过对比这两张图,明显看出第二张图看着更好看,怎样调整MSHFlexGrid控件的大小呢?
方法一:利用MSHFlexGrid控件的属性进行操作。允许用户调整里面有四个选项,0-默认,1-列,2-行,3-行和列,选择3-both,这样就可以手动调节了。
方法二:利用代码,自动调节大小。先在模块中声明一下
Public Sub AutoColWidth(Form As Form, Grid As MSHFlexGrid)
'统一窗体和控件的文字大小
Dim FontSize As Integer
FontSize = Form.FontSize
Form.FontSize = Grid.Font.Size
Dim RowNum As Long, ColNum As Long, ColWidth As Double
With Grid
'遍历每一列
For ColNum = 0 To .Cols - 1
ColWidth = 0
'遍历每一行,找到最长文本
For RowNum = 0 To .Rows - 1
If Form.TextWidth(.TextMatrix(RowNum, ColNum)) > ColWidth Then
ColWidth = Form.TextWidth(.TextMatrix(RowNum, ColNum))
End If
Next
'在最长文本长度的基础上加90缇(6像素)
.ColWidth(ColNum) = ColWidth + 150
Next
End With
Form.FontSize = FontSize
End Sub
然后在窗体中再添加一条调用的代码
AutoColWidth Me, myflexgrid
这样,就可以自动调整列宽了。