1. 程式人生 > >DotNetBar的使用(四)TreeView

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