WebForms TreeView 擁有 SelectedNode.Text 與 SelectedNode.Value 雙屬性,但 WinForms TreeView 僅有 Text 屬性,缺少 Value 屬性。開發者常需為節點附加 ID 等業務標識,如何解決?
絕大多數 WinForms 控件(包括 TreeNode)均提供 Tag 屬性(型別為 object),可儲存任意自訂資料。這是附加 ID 的標準做法。
// 建立根節點
TreeNode root = new TreeNode();
root.Text = "根節點";
treeView1.Nodes.Add(root);
// 建立子節點並附加 ID
TreeNode tn1 = new TreeNode();
tn1.Tag = 1; // 節點 1 的 ID 為 1
tn1.Text = "節點 1";
root.Nodes.Add(tn1);
// 介面優化
treeView1.ExpandAll();
treeView1.ShowLines = true;
int TnID = Convert.ToInt32(tn1.Tag); // 取得節點 ID
as 或 is 檢查型別,避免 InvalidCastExceptionWinForms TreeView 節點附加 ID/業務資料,Tag 屬性是官方推薦、最簡潔、功能最完整的方案。無需繼承 TreeNode 或維護外部對照表,一行代碼解決問題。