- 1 控件的不同部分
- 2 添加控件節(jié)點
- 3 當父節(jié)點處于展開狀態(tài)時添加節(jié)點
- 4 刪除控件節(jié)點
- 5 展開與收縮節(jié)點
- 6 為節(jié)點選擇圖片
- 7 實現拖放
- 8 給控件增加一列
- 9 定義列數據類型
- 10 顯示工具條
- 11 添加節(jié)點副文本
- 12 在一個節(jié)點內編輯文本
- 13 樹型控件排序
- 14 給節(jié)點添加檢查框與選項按鈕
- 15 虛模式
- 16 錯誤信息
- 17 事件
- 18 方法
- 19 屬性
樹型控件排序
- 2017-09-15 14:59:44
- 黃善超
- 3621
- 最后編輯:tmtony8 于 2017-09-15 15:24:52
ctTree控件能夠以任一列排序。這可通過兩種不同的方法實現。第一種是標記一列為可排序列 (在創(chuàng)建列頭的設計時做) 然后單擊你想排序的列頭。第二種是使用排序方法。當可見列被排序時,排序將會以列項目的字符數據為準。
排序也可以基于所有節(jié)點數據或只是一個父節(jié)點的子節(jié)點。排序方法的第二個參數用于確定如何進行排序。
非字符型數據排序
默認情況下, 數據是基于字符數據排序。但是, 當我們需要對整數,實數與日期進行排序時,這就不夠了。在這種情況下,我們可以設置ColumnDataType屬性匹配需要排序的數據類型??丶⒆詣右赃m當的方式排序。
樹也能基于NodeCargo與 NodeData屬性排序。舉個例子, 下例中每當列2排序時,將會基于NodeData屬性排序。
Private Sub ctTree_PreSort( ByVal nColumn as Integer )
If ( nColumn = 2 )
ctTree.SortNewColumn -1
End If
End Sub
如果-1值提供給SortColumn或SortNewColumn 屬性/方法, 排序將基于NodeData 屬性中的數據進行。 如果-2值提供給該屬性, 排序將基于NodeCargo屬性中的數據進行。
注意:在ctTree中不可能隱藏列, 不過你可以給不存在的列分配文本并且基于那筆數據排序。舉個例子, 你可以定義3列但是為四列的每個列項目提供文本。如果我們基于第四列排序列表,我們本質上是以隱藏的列排序。
多列排序
允許同時排序至多三列。SortMultiColumns(多列排序)方法允許程序員指定至多三個不同列被排序。 即可用內部的也可用外部的PreSort方法。舉例:
Private Sub ctTree_PreSort( ByVal nColumn as Integer ) if ( nColumn = 2 ) ctTree.SortMultiColumns nColumn, 3, 4 End If End Sub
或
ctTree.SortMultiColumns 1, 3, 4 ctTree.SortList
以下項目涉及控件排序:
項目 類型 訪問屬性
列頭已經單擊之后禁止列排序 void CancelSort
確定列是否可排序 boolean ColumnSortable
用于中斷排序過程的事件 none PreSort
顯示排序方向箭頭 boolean SortArrows
排序列 . integer SortColumn
升序還是降序 integer SortDirection
指定當前列表是否已排序 boolean Sorted
在樹中排序數據 boolean Sort
將要運行排序的數據列,僅在PreSort事件中有效 . integer SortNewColumn
確定排序是否對事件敏感 . boolean SortOnCase