一:按鈕事件,遍歷所有節點
private void button2_Click(object sender, EventArgs e) { foreach (TreeNode n in TreeView1.Nodes) { ErgodicTreeView(n); } }
void ErgodicTreeView(TreeNode tn) { if (tn == null) return; //查找到某節點時 if (tn.Text.Equals("英山縣")) { //遍歷遞歸獲取父節點,將父節點全部展開 prenode(tn); //選中某節點,並加背景顏色 TreeView1.SelectedNode = tn; TreeView1.SelectedNode.BackColor = System.Drawing.Color.Red; } foreach (TreeNode n in tn.Nodes) { ErgodicTreeView(n); } } void prenode(TreeNode m) { if (m.Parent.Text != null) { m.Parent.Expand(); //當為項級節點時 if (m.Parent.Level == 0) { m.Parent.Expand(); } //不是項級節點時 else { prenode(m.Parent); } } }
如圖: