关于TreeView控件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mabanana/article/details/83684080
【简介】
   TreeView控件用于显示按照树形结构进行组织的数据。该控件中的一个树形图由节点(TreeNode)和连接线组成。节点是TreeView的基本组成单元,一个树的节点又包括文本(Text)和数据(Data)。其中,文本是string类,数据是无定形指针,可以指向一个与节点相联系的数据结构。
【简单使用】
   1、C#创建一个windows窗体

在这里插入图片描述
  2、打开主窗体的设计界面,在左侧的工具箱找到TreeView控件,点击拖拽到窗体设计界面上

在这里插入图片描述
  3、属性修改,其中属性包括:
  BorderStyle:确定控件边界风格,包括Fixed3D、FixedSingle和None三种;
  ImageIndex:节点的默认图像索引,这里的图像是指存放于ImageList属性中的图像;
  ImageList:从中获取节点图像的ImageList控件;
  Nodes:控件中的根节点
  SelectedImageIndex:选定节点的默认图像索引;
  ShowLines:指示是否在同级节点之间以及父节点和子节点之间显示连线;
  ShowPlusMinus:指示是否在父节点旁边显示加/减按钮
  ShowRootLines:指示是否在根节点之间显示连线
  StateImageList:树视图用于表示自定义状态的ImageList控件
  CheckBoxes:指示是否在节点旁显示复选框
  使用这些属性进行不同的搭配,就可以获得不同的显示风格
  对于数据的加入,可以选择Nodes属性,点击左侧的小按钮,在弹出的“TreeNode编辑器”中添加节点数据。首先点击左下角的“添加根”按钮添加一个根节点,在右侧属性窗口修改相关属性,如Text为显示值;其次在选中某一根节点后,点击左下角的“添加子级”按钮添加一个子节点,同样在右侧属性栏修改相关属性
在这里插入图片描述
在这里插入图片描述

【代码】
   仅仅是把控件添加上之后并不能运行此控件,所以就需要我们在代码窗体去编写响应此控件活动的代码,代码如下:
       protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
       {
            for (int i = 0; i < this.TreeView1.Nodes.Count; i++)
            {//跌迭根节点
                if (this.TreeView1 .SelectedValue==this.TreeView1 .Nodes [i].Value )
                {//如果选中的是根节点,就展开
                    this.TreeView1.SelectedNode.Expanded = true;
                }
                else
                {//如果选中的不是根节点
                    for (int j = 0; j < this.TreeView1.SelectedNode.Parent.ChildNodes.Count; j++)
                    {//就让选中节点的所有同级节点收缩
                        this.TreeView1.SelectedNode.Parent.ChildNodes[j].CollapseAll();
                    }
                    //然后再展开选中的节点及其所有父节点
                    this.TreeView1.SelectedNode.Parent.Expanded = true;
                    this.TreeView1.SelectedNode.Expanded = true;
                }
           }

【问题】
   如果只是像上边代码那样编写的话会出现一个问题,那就是这个菜单的伸缩只能是点击前边的小加号实现,点击问题并没有效果,如果想要解决,方法如下:
tn.SelectAction = TreeNodeSelectAction.Expand; //在控件上加上这个属性

  这里需要注意的是,这里的tn指的是节点,即TreeNode ,所以上边的代码也就是treeview.Nodes[index].SelectAction

【总结】
   这个控件还有一些其他的属性,在这里就不做过多的总结了,如果大家感兴趣可以多去了解...

猜你喜欢

转载自blog.csdn.net/Mabanana/article/details/83684080