自己根据搜索到的信息写了下表头排序的实现
首先假设要排序的控件名称为grid1
然后在工程的全局模块定义一个integer数组
Private SortInfo() As Integer
然后在绑定grid1数据的地方重定义下这个数组
redim sortinfo(grid1.cols)
然后再在grid1的MouseUp事件写入实现代码
Private Sub Grid1_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single)
With Grid1
If y < .CellHeight Then
.Col = .MouseCol
If SortInfo(.MouseCol) = 2 Then
.Sort = 1
SortInfo(.MouseCol) = 1
Else
.Sort = 2
SortInfo(.MouseCol) = 2
End If
End If
End With
End Sub
MSHFlexGrid的sort的数值的含义如下:
常数值描述
flexSortNone0无。不执行排序。
flexSortGenericAscending1一般升序。执行估计文本不管是字符串或者是数字的升序排序。
flexSortGenericDescending2一般降序。执行估计文本不管是字符串或者是数字的降序排序。
flexSortNumericAscending3数值升序。执行将字符串转换为数值的升序排序。
flexSortNumericDescending4数值降序。执行将字符串转换为数值的降序排序。
flexSortStringNoCaseAsending5字符串升序。执行不区分字符串大小写比较的升序排序。
flexSortNoCaseDescending6字符串降序。执行不区分字符串大小写比较的降序排序。
flexSortStringAscending7字符串升序。执行区分字符串大小写比较的升序排序。
flexSortStringDescending8字符串降序。执行区分字符串大小写比较的降序排序。
flexSortCustom9自定义。使用Compare事件比较行。
呵呵够简单吧