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这样,就可以自动调整列宽了。