DotNetBar的使用(四)TreeView

DotNetBar的使用(四)TreeView

treeView控件的基本属性方法

1、添加根节点的语句

     treeview1.nodes.add();

2、添加子节点的方法

    Treeview1.selectednode.nodes.add();

3ExpandAll()

     展开树控件的所有节点

4CollapseAll()折叠所有节点

5、获取被选中的节点treeView1.selectednode 返回类型treenode

6checkboxes  true显示复选框  false 不显示复选框(默认值)

 

1、界面设计

 

 

2、【添加根节点】代码

 private void buttonX2_Click_2(object sender, EventArgs e)

        {

            //要添加的节点名称为空,即文本框是否为空

          if(string.IsNullOrEmpty(textBoxX1.Text.Trim()))

           {

               MessageBox.Show("要添加的节点名称不能为空!");

               return;

           }

              //添加根节点

             treeView1.Nodes.Add(textBoxX1.Text.Trim());

             textBoxX1.Text = "";

  

        }

【添加子节点】代码

private void buttonX3_Click(object sender, EventArgs e)

        {

            //要添加的节点名称为空,即文本框是否为空

            if (string.IsNullOrEmpty(textBoxX1.Text.Trim()))

           {

               MessageBox.Show("要添加的节点名称不能为空!");

                return;

           }

           if(treeView1.SelectedNode==null)

           {

              MessageBox.Show("请选择要添加子节点的节点!");

               return;

           }

            treeView1.SelectedNode.Nodes.Add(textBoxX1.Text.Trim());

           textBoxX1.Text = "";

        } 

【展开所有子节点】代码

 private void buttonX5_Click(object sender, EventArgs e)

        {

            treeView1.ExpandAll();

        }

【添加节点】代码

private void buttonX4_Click(object sender, EventArgs e)

        {

            List<TreeNode> myNode = new List<TreeNode>(); //树节点类型列表

            TreeNode node1 = new TreeNode(); //树节点

            node1.Text = "河南";  //设置文本

            myNode.Add(node1);   //添加节点至列表

            TreeNode node2 = new TreeNode();

            node2.Text = "河北";

            myNode.Add(node2);

            TreeNode node3 = new TreeNode();

            node3.Text = "山东";

            myNode.Add(node3);

            foreach (TreeNode node in myNode)  //遍历列表

            {

                treeView1.Nodes.Add(node); //添加至根节点

            }

        }

3、用递归的方法把父节点的选中状态传递给子节点

/// <summary>

        /// 递归函数 递归的吧父亲接到的选择状态传递给孩子结点

        /// </summary>

        /// <param name="treeNode">当前结点</param>

        /// <param name="check">当前结点的选择状态</param>

        /// 该函数参考http://blog.csdn.net/lilongherolilong/article/details/6689642

        private void RefreshChildNode(TreeNode treeNode, bool check)

        {

            foreach (TreeNode node in treeNode.Nodes)

            {

                node.Checked = check;

                if (node.Nodes.Count > 0)

                {

                    RefreshChildNode(node, check);

                }

            }

        }

注释:该函数的功能,把父节点的选中状态,传递给该父节点下的所有子节点,该函数在treeViewaftercheck事件中调用

private void RefreshChildNode(TreeNode treeNode, bool check) //参数分别是父节点和其状态

        {

            foreach (TreeNode node in treeNode.Nodes)  //对父节点的子节点进行循环

            {

                node.Checked = check;  //改变状态

                if (node.Nodes.Count > 0)  //若子节点还有子节点,则递归循环

                {

                    RefreshChildNode(node, check);

                }

            }

        }

4、结果显示

 

 

参考资料:C# TreeView 控件的综合使用方法

https://www.cnblogs.com/net064/p/5534697.html

地理信息科学

Writed By NX

QQ:1051926720


猜你喜欢

转载自blog.csdn.net/a1051926720/article/details/80119225