結合常用方法,涵蓋新增子節點、同層節點、刪除節點、展開/摺疊。前三項透過右鍵選單,後兩項透過按鈕執行。
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace TreeView完整範例
{
public class Form1 : Form
{
private TreeView treeView1;
private Button button1, button2, button3;
private MenuItem menuItem2, menuItem3, menuItem4;
private ContextMenu contextMenu1;
private TextBox textBox1;
private Label label1;
private Container components = null;
public Form1() { InitializeComponent(); }
protected override void Dispose(bool disposing)
{
if (disposing && components != null) components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent() { /* 初始化程式碼略 */ }
[STAThread] static void Main() { Application.Run(new Form1()); }
private void AddChildNode()
{
if (treeView1.SelectedNode == null)
{ MessageBox.Show("請選擇一個節點"); return; }
if (textBox1.Text == "") { MessageBox.Show("請輸入節點名稱!"); return; }
TreeNode tmp = new TreeNode(textBox1.Text);
treeView1.SelectedNode.Nodes.Add(tmp);
treeView1.SelectedNode = tmp;
treeView1.ExpandAll();
}
private void AddParent()
{
if (treeView1.SelectedNode == null)
{ MessageBox.Show("請選擇一個節點"); return; }
if (textBox1.Text == "") { MessageBox.Show("請輸入節點名稱!"); return; }
TreeNode tmp = new TreeNode(textBox1.Text);
treeView1.SelectedNode.Parent.Nodes.Add(tmp);
treeView1.ExpandAll();
}
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
contextMenu1.Show(this, new Point(e.X, e.Y));
}
private void button1_Click(object sender, EventArgs e)
{ treeView1.SelectedNode.Expand(); }
private void menuItem2_Click(object sender, EventArgs e) { AddChildNode(); }
private void menuItem3_Click(object sender, EventArgs e) { AddParent(); }
private void menuItem4_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Nodes.Count == 0)
treeView1.SelectedNode.Remove();
else
MessageBox.Show("請先刪除子節點!");
}
private void button2_Click(object sender, EventArgs e)
{
treeView1.SelectedNode = treeView1.Nodes[0];
treeView1.SelectedNode.ExpandAll();
}
private void button3_Click(object sender, EventArgs e)
{
treeView1.SelectedNode = treeView1.Nodes[0];
treeView1.SelectedNode.Collapse();
}
}
}

圖01:C# TreeView 完整操作範例執行介面
TreeView 靈活、層次分明、容量大,但程式較繁雜。掌握本文基本操作方法,一般問題應可解決。