VB的MSHFlexGrid控件点击表头排序的实现

网上搜索了下实现的代码看着头晕

自己根据搜索到的信息写了下表头排序的实现

首先假设要排序的控件名称为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事件比较行。

呵呵够简单吧

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...