当前位置:  编程技术>.net/c#/asp.net

C# TreeView控件实例代码(重新设置TreeView、删除节点、右键选中等)

    来源: 互联网  发布时间:2014-08-30

    本文导语:  treeview可以做到: 当前选中项:TreeView.SelectedNode 增加顶级节点:TreeView.Nodes.Add("Key", "Text") 增加同级节点:TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text") 增加子节点:TreeView.SelectedNode.Nodes.Add("Key", "Text") 全部展开:TreeView.ExpandAll()...

treeview可以做到:
当前选中项:TreeView.SelectedNode
增加顶级节点:TreeView.Nodes.Add("Key", "Text")
增加同级节点:TreeView.SelectedNode.Parent.Nodes.Add("Key", "Text")
增加子节点:TreeView.SelectedNode.Nodes.Add("Key", "Text")
全部展开:TreeView.ExpandAll()
全部收拢:TreeView.CollapseAll()

1、重新设置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());
}
}
}

2、删除选中节点和其子结点,同时删除数据库中相应记录
数据库表结构为: 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();
}
}
}

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

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 给高效的jquery.treeview加上选择框 jquer.treeview.addon
  • React-treeview
  • 关于treeview+数据库的问题,
  • 关于Gtk treeview的事件问题。
  • 用GTK+怎么让treeview控件带上背景图片?哪位高人给个思路?
  • jQuery树状插件 Treeview
  • gtk+ 是否支持这样的treeview [有图]
  • 【GTK】Treeview -- 如果获取在column header上的右键事件?
  • treeview递归绑定的两种方法
  • 【GTK】 关于 TreeView -- 如何将一行显示加粗?
  • C#TreeView 无限级别分类实现方法
  • asp.net TreeView复选框全选或全不选的实现方法
  • 关于ASP.NET中TreeView用法的一个小例子
  • Treeview动态添加用户控件传值和取值的实例代码
  • 自己实现的android树控件treeview


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3