2
排序TreeView節點我寫了一個比較器,我想在TreeView
的父節點上實現它,但我需要比較的是Node.Tag.ToString()
而不是Text
。據我看,有沒有超載或其他功能使用TreeView.Sort()
做到這一點。通過比較theire標籤屬性
我想知道你是否有辦法或解決方法嗎?
排序TreeView節點我寫了一個比較器,我想在TreeView
的父節點上實現它,但我需要比較的是Node.Tag.ToString()
而不是Text
。據我看,有沒有超載或其他功能使用TreeView.Sort()
做到這一點。通過比較theire標籤屬性
我想知道你是否有辦法或解決方法嗎?
如果你有一個IComparer,它看起來像你可以設置TreeViewNodeSorter屬性,然後調用Sort按照你的意願對節點進行排序。基於該鏈接的
示例 - 沒試過,沒有null檢查等,但它應該工作:
public class NodeSorter : IComparer
{
public int Compare(object x, object y)
{
TreeNode tx = x as TreeNode;
TreeNode ty = y as TreeNode;
return string.Compare(tx.Tag.ToString(), ty.Tag.ToString());
}
}
然後treeView1.TreeViewNodeSorter = new NodeSorter();
某處您的設置。
是的,但我相信這種類型的節點基於theire'文本'而不是'Tag' –
@ Sean87:如果您在該鏈接底部的示例中查看'public class NodeSorter',則傳遞給'IComparer'本身就是'TreeNode',而不僅僅是文本。該示例仍然使用「Text」屬性(按長度排序而不是內容),但我沒有看到任何理由不應使用「Tag」屬性。我可以在一個例子中編輯。 – Rawling
你是對的!我正在傳遞節點的文本!多麼可憐!非常感謝! –