Private Sub vsGrid1_BeforeSort(ByVal Col As Long, Order As Integer) '排序前先删除合计的行 Dim intLoop As Integer For intLoop = vsGrid1.Rows - 1 To 1 Step -1 If vsGrid1.TextMatrix(intLoop, 0) = "合计" Then vsGrid1.RemoveItem intLoop End If Next vsGrid1.Refresh End SubPrivate Sub vsGrid1_AfterSort(ByVal Col As Long, Order As Integer) '排序后再重新进行合计和小计 On Error GoTo ErrProc Dim intLoop As Integer '添加合计行 vsGrid1.AddItem "" vsGrid1.TextMatrix(vsGrid1.Rows - 1, 0) = "合计" vsGrid1.Cell(flexcpBackColor, vsGrid1.Rows - 1, 1, vsGrid1.Rows - 1, vsGrid1.Cols - 1) = RGB(153, 204, 255) vsGrid1.Cell(flexcpData, vsGrid1.Rows - 1, 1, vsGrid1.Rows - 1, vsGrid1.Cols - 1) = flexDTString '重新显示行号 For intLoop = 1 To vsGrid1.Rows - 2 vsGrid1.TextMatrix(intLoop, 0) = intLoop Next Call ShowCount vsGrid1.Refresh
Exit SubErrProc: MsgBox "错误代码:" & Err.Number & vbCrLf & "错误原因:" & Err.Description End Sub 与Sort有关的代码就是上面两段,在排序前先删除合计行,排序后再重新显示合计行
0-flexExNone:默认,单击列头选择整列,单击行头选择整行
1-flexExSort:单击列头可正反排序该列,单击行头选择整行
2-flexExMove:单击列头可交换列顺序,单击行头选择整行
3-flexExSortAndMove:具有 1 和 2 的功能
4:单击列头可正反排序该列并在列头显示相应箭头,单击行头选择整行
5-flexExSortShow:好像与 4 相同也
6:具有 2 和 4 的功能
7-flexExSortShowAndMove:好像与 6 相同也
8-flexExMoveRows:单击列头选择整列,可拖动行
9:单击列头可正反排序该列,可拖动行
10:可拖动行与列
11:可排序列及拖动行列
12:可排序列并在列头显示相应箭头,还可拖动行
13:同 12。
14:除 12 功能外,可拖动列
15:同 14。
有些窗体中的能显示排序图标,有的不能显示,不知道是怎么回事!
Private Sub vsGrid1_BeforeSort(ByVal Col As Long, Order As Integer)
'排序前先删除合计的行
Dim intLoop As Integer For intLoop = vsGrid1.Rows - 1 To 1 Step -1
If vsGrid1.TextMatrix(intLoop, 0) = "合计" Then
vsGrid1.RemoveItem intLoop
End If
Next
vsGrid1.Refresh
End SubPrivate Sub vsGrid1_AfterSort(ByVal Col As Long, Order As Integer)
'排序后再重新进行合计和小计
On Error GoTo ErrProc Dim intLoop As Integer '添加合计行
vsGrid1.AddItem ""
vsGrid1.TextMatrix(vsGrid1.Rows - 1, 0) = "合计"
vsGrid1.Cell(flexcpBackColor, vsGrid1.Rows - 1, 1, vsGrid1.Rows - 1, vsGrid1.Cols - 1) = RGB(153, 204, 255)
vsGrid1.Cell(flexcpData, vsGrid1.Rows - 1, 1, vsGrid1.Rows - 1, vsGrid1.Cols - 1) = flexDTString '重新显示行号
For intLoop = 1 To vsGrid1.Rows - 2
vsGrid1.TextMatrix(intLoop, 0) = intLoop
Next Call ShowCount vsGrid1.Refresh
Exit SubErrProc:
MsgBox "错误代码:" & Err.Number & vbCrLf & "错误原因:" & Err.Description
End Sub
与Sort有关的代码就是上面两段,在排序前先删除合计行,排序后再重新显示合计行
可能是autosize后,的宽度不能显示图标