'单击表格列头进行排序 Public Sub GridOrderBy(ByVal MSHGrid As MSHFlexGrid) Dim i As Integer MSHGrid.Col = MSHGrid.MouseCol If MSHGrid.MouseRow = 0 Then If InStr(1, MSHGrid.TextMatrix(0, MSHGrid.MouseCol), "▲") > 0 Then MSHGrid.Sort = 2 MSHGrid.TextMatrix(0, MSHGrid.MouseCol) = Left(MSHGrid.TextMatrix(0, MSHGrid.MouseCol), Len(MSHGrid.TextMatrix(0, MSHGrid.MouseCol)) - 1) & "▼" Else If InStr(1, MSHGrid.TextMatrix(0, MSHGrid.MouseCol), "▼") > 0 Then MSHGrid.Sort = 1 MSHGrid.TextMatrix(0, MSHGrid.MouseCol) = Left(MSHGrid.TextMatrix(0, MSHGrid.MouseCol), Len(MSHGrid.TextMatrix(0, MSHGrid.MouseCol)) - 1) & "▲" Else MSHGrid.Sort = 1 For i = 0 To MSHGrid.Cols - 1 If InStr(1, MSHGrid.TextMatrix(0, i), "▲") > 0 Or InStr(1, MSHGrid.TextMatrix(0, i), "▼") Then MSHGrid.TextMatrix(0, i) = Left(MSHGrid.TextMatrix(0, i), Len(MSHGrid.TextMatrix(0, i)) - 1) End If Next MSHGrid.TextMatrix(0, MSHGrid.MouseCol) = MSHGrid.TextMatrix(0, MSHGrid.MouseCol) & "▲" End If End If End If Private Sub MSHFlexGrid1_Click() Call GridOrderBy(MSHFlexGrid1) End Sub
列頭可以單擊,設個屬性就可以排序了。
Public Sub GridOrderBy(ByVal MSHGrid As MSHFlexGrid)
Dim i As Integer
MSHGrid.Col = MSHGrid.MouseCol
If MSHGrid.MouseRow = 0 Then
If InStr(1, MSHGrid.TextMatrix(0, MSHGrid.MouseCol), "▲") > 0 Then
MSHGrid.Sort = 2
MSHGrid.TextMatrix(0, MSHGrid.MouseCol) = Left(MSHGrid.TextMatrix(0, MSHGrid.MouseCol), Len(MSHGrid.TextMatrix(0, MSHGrid.MouseCol)) - 1) & "▼"
Else
If InStr(1, MSHGrid.TextMatrix(0, MSHGrid.MouseCol), "▼") > 0 Then
MSHGrid.Sort = 1
MSHGrid.TextMatrix(0, MSHGrid.MouseCol) = Left(MSHGrid.TextMatrix(0, MSHGrid.MouseCol), Len(MSHGrid.TextMatrix(0, MSHGrid.MouseCol)) - 1) & "▲"
Else
MSHGrid.Sort = 1
For i = 0 To MSHGrid.Cols - 1
If InStr(1, MSHGrid.TextMatrix(0, i), "▲") > 0 Or InStr(1, MSHGrid.TextMatrix(0, i), "▼") Then
MSHGrid.TextMatrix(0, i) = Left(MSHGrid.TextMatrix(0, i), Len(MSHGrid.TextMatrix(0, i)) - 1)
End If
Next
MSHGrid.TextMatrix(0, MSHGrid.MouseCol) = MSHGrid.TextMatrix(0, MSHGrid.MouseCol) & "▲"
End If
End If
End If
Private Sub MSHFlexGrid1_Click()
Call GridOrderBy(MSHFlexGrid1)
End Sub