用户登录
用户注册

分享至

C# TreeView控件使用代码

  • 作者: 十个丶钟
  • 来源: 51数据库
  • 2021-10-19
当前选中项: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;
}
}
}
软件
前端设计
程序设计
Java相关