winform TreeView 節點選擇

來源:互聯網
上載者:User

標籤:

public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        string tag = "True";        StringBuilder nodesTag;        /// <summary>        /// 全選        /// </summary>        /// <param name="treeNode"></param>        /// <param name="nodeChecked"></param>        private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)        {            foreach (TreeNode node in treeNode.Nodes)            {                node.Checked = nodeChecked;                node.Tag = tag;////記得在這裡為選中的項目設定tag屬性                if (node.Nodes.Count > 0)                {                    this.CheckAllChildNodes(node, nodeChecked);                }            }        }        private void TraversNodes(TreeNode parent)        {            TreeNode node = parent;            if (node != null)            {                if (node.Tag != null && node.Tag.ToString() == tag)                    nodesTag.AppendFormat("node:{0} has checked\n", node.Text);                if (node.FirstNode != null)////如果node節點還有子節點則進入遍曆                {                    TraversNodes(node.FirstNode);                }                if (node.NextNode != null)////如果node節點後面有同級節點則進入遍曆                {                    TraversNodes(node.NextNode);                }            }        }        /// <summary>        /// 已選中或取消選中框發生事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)        {            if (e.Action != TreeViewAction.Unknown)            {                TreeNode node = e.Node;                if (node.Tag == null)                    node.Tag = tag;//附加結點資訊                else                    node.Tag = null;                CheckAllChildNodes(e.Node, e.Node.Checked);                //選中父節點                 bool bol = true;                if (e.Node.Parent != null)                {                    for (int i = 0; i < e.Node.Parent.Nodes.Count; i++)                    {                        if (!e.Node.Parent.Nodes[i].Checked)                            bol = false;                    }                    e.Node.Parent.Checked = bol;                    ////記得如果父節點被選中或取消,記得設定它的tag                    if (bol)                    {                        e.Node.Parent.Tag = tag;                    }                    else                    {                        e.Node.Parent.Tag = null;                    }                }            }        }    }

 

winform TreeView 節點選擇

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.