如何在.Net Winforms中對節點級別屬性為0的Treeview節點進行排序。如果對于不應排序的 0 級節點有可用的子節點。
uj5u.com熱心網友回復:
不知道預期的結果是什么,但是...
我創建了一個包含6 個檔案夾的示例:4 個空檔案夾和 2 個非空檔案夾:

默認情況下,它們按名稱(按字母順序)排序。正如你所說,目標是:
- 僅對 0 級節點進行排序。
- 如果 0 級節點有子節點,則不要對其進行排序。
因為您沒有提供您想要對 Level 0 節點進行排序的方式,所以我選擇按"Empty folders first, then non-empty"排序。因此,我創建了名為 的自定義排序器Level0NodeSorter,它首先定位沒有子節點的 0 級節點,然后使用它們:
Public Class Level0NodeSorter
Implements System.Collections.IComparer
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer
Dim node As System.Windows.Forms.TreeNode = TryCast(x, System.Windows.Forms.TreeNode)
Return If(node.Level = 0 AndAlso node.Nodes.Count > 0, 1, 0)
End Function
End Class
然后將自定義排序器應用于我的TreeView:
treeView1.TreeViewNodeSorter = New Level0NodeSorter()
treeView1.Sort()
得到這個:

首先放置空檔案夾。然后 - 非空。孩子不受影響。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/312298.html
