End Sub
计算一个索引并完成排序。要这样做,请定义一个例程来计算索引并排序。该索引时同 TextArray 属性一起使用来对数据排序。插入下列例程计算索引:
Function Fgi (r As Integer, c As Integer) As Integer
Fgi = c + Fg1.Cols * r
End Function
Sub DoSort ()
Fg1.Col = 0
Fg1.ColSel = Fg1.Cols - 1
Fg1.Sort = 1 '一般为升序。
End Sub
将数据输入到您的 Hierarchical FlexGrid。要这样做,请定义一个例程使用示例数据充填 Hierarchical FlexGrid:
Function RandomString (kind As Integer)
Dim s As String
Select Case kind
Case 0 '地区。
Select Case (Rnd * 1000) Mod 5
Case 0: s = "1. Northwest"
Case 1: s = "2. Southwest"
Case 2: s = "3. Midwest"
Case 3: s = "4. East"
Case Else: s = "5. Overseas"
End Select
Case 1 '产品。
Select Case (Rnd * 1000) Mod 5
Case 0: s = "1. Chai"
Case 1: s = "2. Peppermint"
Case 2: s = "3. Chamomile"
Case Else: s = "4. Oolong"
End Select
Case 2 '雇员。
Select Case (Rnd * 1000) Mod 4
Case 0: s = "Clare"
Case 1: s = "Tiffany"
Case 2: s = "Sally"
Case Else: s = "Lori"
End Select
End Select
RandomString = s
End Function
如果在此时运行工程,则将显示窗体如下:
通过添加下列例程重新组织数据,该例程将列拖动到新的位置。当用户按下鼠标按钮来触发 MouseDown 事件时,该例程用 Tag 属性保存列数目:
Sub Fg1_MouseDown (Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Fg1.Tag = ""
If Fg1.MouseRow <> 0 Then Exit Sub
Fg1.Tag = Str(Fg1.MouseCol)
MousePointer = vbSizeWE
End Sub
添加下列例程以重新调整,当用户释放鼠标按钮触发 MouseUp 事件时,该例程重新调整列并将数据排序:
Sub Fg1_MouseUp (Button As Integer, Shift As _
Integer, X As Single, Y As Single)
MousePointer = vbDefault
If Fg1.Tag = "" Then Exit Sub
Fg1.Redraw = False
Fg1.ColPosition(Val(Fg1.Tag)) = Fg1.MouseCol
DoSort
Fg1.Redraw = True
End Sub