欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# TreeView控件使用代码

程序员文章站 2023-11-25 12:44:40
当前选中项:treeview.selectednode 增加*节点:treeview.nodes.add("key", "text") 增加同级节点:treeview.s...
当前选中项:treeview.selectednode
增加*节点:treeview.nodes.add("key", "text")
增加同级节点:treeview.selectednode.parent.nodes.add("key", "text")
增加子节点:treeview.selectednode.nodes.add("key", "text")
全部展开:treeview.expandall()
全部收拢:treeview.collapseall()
重新设置treeview
数据库表结构为: id 类型名称 父级id
复制代码 代码如下:

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());
}
}
}

删除选中节点和其子结点,同时删除数据库中相应记录
数据库表结构为: id 类型名称 父级id
复制代码 代码如下:

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();
}
}
}

treeview右键选中
复制代码 代码如下:

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;
}
}
}