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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章