C# TreeView 控件使用代码详解
TreeView 控件是 Windows 窗体应用程序中常用的控件之一,用于展示树形结构的数据。下面是关于 C# TreeView 控件使用代码的详解。
一、基本使用
TreeView 控件的基本使用包括添加节点、删除节点、展开节点、收拢节点等。这些操作可以通过 TreeNode 对象来实现。
* 添加顶级节点:TreeView.Nodes.Add("Key", "Text")
* 添加同级节点:TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text")
* 添加子节点:TreeView.SelectedNode.Nodes.Add("Key", "Text")
* 展开所有节点:TreeView.ExpandAll()
* 收拢所有节点:TreeView.CollapseAll()
二、加载TreeView数据
加载TreeView数据可以通过数据库表结构来实现。假设我们有一个货品类别表,表结构如下:
| ID | 类型名称 | 父级ID |
| --- | --- | --- |
| 1 | 类别1 | 0 |
| 2 | 类别2 | 1 |
| 3 | 类别3 | 1 |
| 4 | 类别4 | 2 |
我们可以使用以下代码来加载TreeView数据:
private void loadTreeView()
{
this.货品类别TableAdapter1.Fill(superCargoDataSet1.货品类别);
DataTable table = superCargoDataSet1.货品类别;
DataRow[] row = table.Select("父级ID=0");
foreach (DataRow r in row)
{
TreeNode node = 货品类别TreeView.Nodes.Add(r["ID"].ToString(), r["类型名称"].ToString());
recursionShow(node, r["ID"].ToString());
}
}
private void recursionShow(TreeNode nodes, string id)
{
DataTable table = superCargoDataSet1.货品类别;
DataRow[] row = table.Select("父级ID=" + id);
if (row != null)
{
foreach (DataRow r in row)
{
TreeNode node = nodes.Nodes.Add(r["ID"].ToString(), r["类型名称"].ToString());
recursionShow(node, r["ID"].ToString());
}
}
}
三、删除节点
删除节点可以使用以下代码:
private void 删除ToolStripButton_Click(object sender, EventArgs e)
{
if (货品类别TreeView.SelectedNode != null)
{
DataRow[] rowChildren = superCargoDataSet1.货品类别.Select("ID=" + 货品类别TreeView.SelectedNode.Name.ToString());
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete节点(row["ID"].ToString());
row.Delete();
}
}
货品类别TreeView.SelectedNode.Remove();
}
}
private void delete节点(string id)
{
DataRow[] rowChildren = superCargoDataSet1.货品类别.Select("父级ID=" + id);
if (rowChildren != null)
{
foreach (DataRow row in rowChildren)
{
delete节点(row["ID"].ToString());
row.Delete();
}
}
}
四、右键选中节点
右键选中节点可以使用以下代码:
private void treeView左侧_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
TreeNode node = treeView左侧.GetNodeAt(e.X, e.Y);
if (node != null)//右键未选中节点,不改变当前选中的节点。VS2005如此。
{
this.treeView左侧.SelectedNode = node;
}
}
}
C# TreeView 控件使用代码可以实现各种树形结构的数据展示和操作。