WinForm TreeView绑定

      在类别显示的时候,我们往往会选择树状的形式展现出来,这个很常见,我们来看看在winForm中如何绑定

在winForm的控件中,已经为我们提供了一个树状展示的控件TreeView,这个用起来很方便,只要记住几点就可以很好完成数据的绑定

首先,TreeView的节点是TreeNode,每一个节点都是一个TreeNode对象

其次、完成对每个TreeNode对象的属性绑定

然后、可以通过TreeNode的Nodes.add(treeNode)添加子节点

最后、将节点绑定到TreeVIew上 如:treeView1.Nodes.Add(treeNode);

看看下面的例子就一目了然了

ExpandedBlockStart.gif View Code
         public  void BindTreeView()
        {
             // 根节点
            TreeNode treeNode =  new TreeNode();
            treeNode.Name =  " 节点名称 ";
            treeNode.Text =  " 根节点 ";

             // 根节点下面的子节点
            TreeNode node1 =  new TreeNode();
            node1.Text =  " 第二个节点1 ";

            TreeNode node2 =  new TreeNode();
            node2.Text =  " 第二个节点2 ";


            TreeNode node3 =  new TreeNode();
            node3.Text =  " 第二个节点3 ";

            TreeNode node4 =  new TreeNode();
            node4.Text =  " 第二个节点4 ";


             // 将节点添加到根节点中
            treeNode.Nodes.Add(node1);
            treeNode.Nodes.Add(node2);
            treeNode.Nodes.Add(node3);
            treeNode.Nodes.Add(node4);



             // 为第二个子节点1添加子节点
            TreeNode childNode1= new TreeNode();
            childNode1.Text= " 子节点1-1 ";

            TreeNode childNode2= new TreeNode();
            childNode2.Text= " 子节点1-2 ";

            TreeNode childNode3= new TreeNode();
            childNode3.Text= " 子节点1-3 ";

            node1.Nodes.Add(childNode1);
            node1.Nodes.Add(childNode2);
            node1.Nodes.Add(childNode3);

             // 为第二个子节点2添加子节点
            TreeNode childNode4 =  new TreeNode();
            childNode4.Text =  " 子节点2-1 ";

            TreeNode childNode5 =  new TreeNode();
            childNode5.Text =  " 子节点2-2 ";

            TreeNode childNode6 =  new TreeNode();
            childNode6.Text =  " 子节点2-3 ";

            node2.Nodes.Add(childNode4);
            node2.Nodes.Add(childNode5);
            node2.Nodes.Add(childNode6);

             // 将根节点添加到TreeView中
            treeView1.Nodes.Add(treeNode);
            treeView1.ExpandAll();
        }

下面来看一个将xml文件的数据读取到树上的例子

xml文件

 

ExpandedBlockStart.gif View Code
<? xml version="1.0" encoding="utf-8" ?>
< Users >
   < User  id ="0" >
     < Name >Jeffrey </ Name >
     < Sex ></ Sex >
     < UserName >Jeffrey </ UserName >
   </ User >
   < User  id ="1" >
     < Name >Tom </ Name >
     < Sex ></ Sex >
     < UserName >tom </ UserName >
   </ User >
   < User  id ="2" >
     < Name >Jef </ Name >
     < Sex ></ Sex >
     < UserName >jef </ UserName >
   </ User >
   < User  id ="3" >
     < Name >1 </ Name >
     < Sex >1 </ Sex >
     < UserName >1 </ UserName >
   </ User >
</ Users >

读取并绑定到TreeView上

 

ExpandedBlockStart.gif View Code
         public  void bindXmltoTreeView()
        {
            XmlDocument xdoc =  new XmlDocument();
            xdoc.Load(System.Environment.CurrentDirectory +  " \\UsersXml.xml ");
            XmlNodeList xnodeList = xdoc.SelectNodes( " //User ");

            TreeNode parentNode =  new TreeNode( " 根节点 ");
            treeView2.Nodes.Add(parentNode);
             foreach (XmlNode node  in xnodeList)
            {
                 string name = node.ChildNodes.Item( 0).InnerText;
                TreeNode tnode =  new TreeNode(name);
                parentNode.Nodes.Add(tnode);

                 string Sex = node.ChildNodes.Item( 1).InnerText;
                TreeNode tnode1 =  new TreeNode(Sex);
                tnode.Nodes.Add(tnode1);

                 string UserName = node.ChildNodes.Item( 2).InnerText;
                TreeNode tnode2 =  new TreeNode(UserName);
                tnode.Nodes.Add(tnode2);
            }
            treeView2.ExpandAll();
        }

当然了,如果是无限极分类,可以使用递归循环就可以了,这里把代码贴出来,以后方便直接拷贝使用,提供编码效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 刷壳是指对已经存在的WinForm TreeView控件进行定制化的外观修改。具体而言,刷壳包括对TreeView控件的背景色、边框颜色、节点样式、展开和折叠图标等进行修改。 刷壳的实现需要通过重写或替换TreeView控件的绘制方法来实现。一种常见的方法是通过继承TreeView控件,然后重写OnPaint方法,自定义绘制控件的外观。 在重写OnPaint方法时,可以使用GDI+绘图技术来绘制TreeView控件的各个部分,包括节点、线条、图标等。可以根据需要修改绘制的颜色、大小、字体等属性,以实现定制化的外观效果。 除了绘制外观,刷壳还可以对TreeView控件的交互行为进行修改。比如,可以重写鼠标点击事件来实现自定义的节点展开和折叠功能,或者重写鼠标移动事件来实现节点的拖拽移动等操作。 总之,刷壳可以通过修改WinForm TreeView控件的绘制和交互行为,实现定制化的外观效果和功能。通过合理使用刷壳技术,可以使TreeView控件更好地适应特定的界面风格和交互需求。 ### 回答2: WinForm TreeView 刷壳是指在 WinForm 应用程序中,通过编程的方式刷新 TreeView 控件的节点数据。 在 WinForm 应用程序中,TreeView 控件通常用于展示层次结构的数据,比如文件目录结构或者组织架构等。当数据发生变化时,需要刷新 TreeView 控件以更新显示的节点信息。 为了实现 TreeView 的刷新,可以通过以下两种方式之一。 1. 重新加载数据源:可以通过重新加载 TreeView数据源来刷新节点。例如,如果 TreeView 显示的是文件目录结构,当文件发生变化时,可以重新读取目录树的数据,然后将新的数据绑定TreeView 控件上,从而刷新节点。 2. 更新节点属性:另一种方式是直接更新 TreeView 的节点属性。例如,可以通过修改节点的文本、图标或其他属性来反映节点数据的变化。可以通过查找要更新的节点并修改其属性,然后调用 TreeView 控件的 Refresh 方法来刷新视图。 无论是重新加载数据源还是更新节点属性,都需要在适当的时机调用相关的方法来实现刷新操作。例如,在数据变化的事件处理程序中或者用户触发了刷新操作时,可以调用相关的方法来刷新 TreeView 控件。 总之,WinForm TreeView 刷壳是通过重新加载数据源或者更新节点属性来刷新 TreeView 控件的节点数据。这样可以保持 TreeView 与实际数据的同步,并提供准确的展示效果。 ### 回答3: Winform TreeView控件的“刷壳”指的是刷新TreeView的节点显示和数据内容。刷壳操作常用于动态加载节点、更新节点信息或者重新排序节点。 通常,刷壳操作可以通过以下步骤实现: 1. 清除原有的节点数据:使用TreeView控件的Nodes属性,调用Clear方法来清除所有节点。 2. 添加新的节点:使用TreeView控件的Nodes属性,逐个创建TreeNode对象,并添加到Nodes集合中。可以使用Add方法或者AddRange方法来添加一个或多个节点。 3. 设置节点属性:可以通过TreeNode对象的Text属性来设置节点的文本显示内容,通过Tag属性来存储和关联节点的数据。 4. 设置节点之间的关系:通过TreeNode对象的Nodes属性,可以嵌套创建子节点,并设置父子关系。 5. 刷新TreeView显示:调用TreeView控件的Refresh方法,以便更新TreeView的显示,并确保新的节点显示出来。 需要注意的是,在刷壳操作过程中,若节点数量较多或者节点数据较复杂,可能会引起性能问题。为了提高刷壳操作的效率,可以使用BeginUpdate和EndUpdate方法来阻止TreeView的重绘,从而减少刷新的次数。 总结来说,通过清除原有节点、添加新节点、设置节点属性和刷新显示,我们可以使用Winform TreeView控件实现刷壳操作,使得节点的显示和数据内容得到更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值