VB MSHFlexGrid排序
这次想对MSHFlexGrid的内容进行排序,排序方法是:点击表头,自动进行升序或者降序。
Dim IntSort as Integer '必须放在通用,否则无法排序
Private Sub MSHFlexGrid_Click()
If (MSHFlexGrid.Col = MSHFlexGrid.ColSel) And (MSHFlexGrid.RowSel = MSHFlexGrid.Rows - 1) And (MSHFlexGrid.Row <> MSHFlexGrid.Rows - 1) Then
Select Case IntSort
Case 0
MSHFlexGrid.Sort = 1
IntSort = 1
Case 1
MSHFlexGrid.Sort = 2
IntSort = 2
Case 2
MSHFlexGrid.Sort = 1
IntSort = 1
Case Else
IntSort = 0
End Select
End If
'在{BANNED}中国第一列添加序号
For CntItem = 1 To MSHFlexGrid.Rows - 1
MSHFlexGrid.TextMatrix(CntItem, 0) = CntItem
Next
End Sub
简化:
Dim IntSort as Integer '必须放在通用,否则无法排序
Private Sub MSHFlexGrid_Click()
With MSHFlexGrid1
If (.Col = .ColSel) And (.RowSel = .Rows - 1) And (.Row <> .Rows - 1) Then
Select Case IntSort
Case 0
.Sort = 1
IntSort = 1
Case 1
.Sort = 2
IntSort = 2
Case 2
.Sort = 1
IntSort = 1
Case Else
IntSort = 0
End Select
End If
End With
END Sub
2法:
dim i as as Integer '必须放在通用,否则无法排序
Private Sub MSHFlexGrid1_Click()
'mshflexgrid标题排序
i = i + 1
With MSHFlexGrid1
If .MouseRow <> 0 Then Exit Sub '如果不是标题行就不排序
.Col = .MouseCol
.Sort = 3 + i Mod 2 '按数值型排序
.Sort = 1 + i Mod 2 '按字符排序
End With
End Sub
另外,关于MSHFlexGrid.Sort 属性的语法包含如下:
object 一个对象表达式,其值为“应用于”列表中的一个对象。
Value 一个整数或常数,指定排序类型。设置值如下所示:
常数 值 描述
flexSortNone 0 无。不执行排序。
flexSortGenericAscending 1 一般升序。执行估计文本不管是字符串或者是数字的升序排序。
flexSortGenericDescending 2 一般降序。执行估计文本不管是字符串或者是数字的降序排序。
flexSortNumericAscending 3 数值升序。执行将字符串转换为数值的升序排序。
flexSortNumericDescending 4 数值降序。执行将字符串转换为数值的降序排序。
flexSortStringNoCaseAsending 5 字符串升序。执行不区分字符串大小写比较的升序排序。
flexSortNoCaseDescending 6 字符串降序。执行不区分字符串大小写比较的降序排序。
flexSortStringAscending 7 字符串升序。执行区分字符串大小写比较的升序排序。
flexSortStringDescending 8 字符串降序。执行区分字符串大小写比较的降序排序。
flexSortCustom 9 自定义。使用 Compare 事件比较行。
阅读(349) | 评论(0) | 转发(0) |