前言:
进行机房的过程中我们大家可能都注意到了查询显示的控件有MSHFlexGrid和MSFlexGrid两种,看着就很相似傻傻分不清楚,于是就去查了下关于这个的信息;
- 简单认识:
MSHFlexGrid是MSFlexGrid的更新版,支持ADO的层次显示,如果不使用ADO,可以考虑MSFlexGrid,否则建议使用MSHFlexGrid;
1、MSFlexGrid:
- 使用Col和Row属性可以分别确定MSFlexGrid中列与行的个数
MSFlexGrid:控件可以显示网格数据,也可以对其进行操作,网格中可以包含字符串和图片。如果将它绑定到一个Data控件上,那么MSFlexGrid显示的将是只读的数据
引用:
> 工程—部件—Microsoft FlexGrid Control 6.0
- 应用举例:
1、 将文本赋值给MSFlexGrid的单元格
> MSFlexGrid.TextMatrix(2,1)="学号"
2、选中某一单元
> MSFlexGrid.Row=1
> MSFlexGrid.Col=1
3、MSFlexGrid中的对齐功能的使用
> MSFlexGrid1.ColAlignment(index)=n
4、通过代码调节列宽度
> msflexgrid1.colwidth(i)=1600
5、实现MSFlexGrid控件单数行背景为白色,双数的行背景为红色
Dim i As Integer
With MSFlexGrid1
.AllowBigSelection = True ’ 设置网格样式
.FillStyle = flexFillRepeat
For i = 0 To .Rows - 1
.Row = i: .Col = .FixedCols
.ColSel = .Cols() - .FixedCols - 1
If i Mod 2 = 0 Then
.CellBackColor = &HC0C0C0 ’ 浅灰
Else
.CellBackColor = vbRed ’ 红色
End If
Next i
End With
2、MSHFlexGrid:
- 用Cols和Rows属性来决定MSHFlexGrid控件中的列数和行数
- MSHFlexGrid特性:能显示层次结构记录集—以层次结构方式显示的关系表;
- 引用:
> 工程—部件—Microsoft Hierarchical FlexGrid Control 6.0(OLEDB)
- 应用举例:
如果记录集已经在程序中产生,则可以不与adodc控件绑定,直接在MSHFlexgrid控件中显示数据,并且可以根据需要设置控件中行的颜色;
1、禁止MSHFlexgrid选择多行记录
> Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If MSHFlexGrid1.RowSel <> MSHFlexGrid1.Row Then
MSHFlexGrid1.RowSel = MSHFlexGrid1.Row
End Sub
2、通过代码调节列宽度
> MSHFlexGrid1.colwidth(i)=1600
3、删除选中行
Dim MsgText As String
Dim txtSQL As String
With MSFlexGrid1
If .RowSel = 0 Then
MsgBox "请选择学生下线!", 0 + 48, "提示!"
Exit Sub
Else
If .RowSel > 0 Then
If .RowSel = MSHFlexGrid1.Row = 0 Then
MsgBox "首行不能删除!", 0 + 48, "提示!"
Exit Sub
End If
txtSQL = "select * from online_info where cardno='" & Trim(.TextMatrix(.RowSel, 0)) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
FrmMain.Show
FrmMain.txtCardNo = mrc.Fields(0)
'执行下机操作
FrmMain.lblOffLine = True
'删除Msflexgrid表中选中的一行
MSFlexGrid1.RemoveItem MSFlexGrid1.RowSel
End If
End If
End With
小结:
贯穿机房始终的一个控件,不同的控件作用也不同,可以根据需要自行选择;