TreeView中Tag及遍历树节点

1.定义一个类
 class Info
    {
        public string EnglishName { get; set; }
        public int Age{ get; set; }
        public string Address { get; set; }
    }
2.
 private void button1_Click(object sender, EventArgs e)
        {
            treeView2.Nodes.Clear();                                  //移除旧的节点
            TreeNode nodePeople = new TreeNode();  //每个节点都是一个对象。TreeNode
            Info info = new Info();
            info.EnglishName = "Mary";
            info.Age = 24;
            info.Address = "山东";
            nodePeople.Tag = info;          //将节点的Tag属性指向一个对象,由于Tag是object类型的,所以可以指向任何对象
            nodePeople.Text = "张静";
            treeView2.Nodes.Add(nodePeople);
        }
3.点击树节点事件
  private void treeView2_AfterSelect(object sender, TreeViewEventArgs e)
   {
      Info info = (Info)e.Node.Tag;           //e.Node当前操作的节点
      MessageBox.Show(string.Format("EnglishName={0},Age={1},Address={2}",info.EnglishName,info.Age,info.Address));
   }
二.TreeView节点的遍历
private void button2_Click(object sender, EventArgs e)
    {
            foreach (TreeNode node in treeView1.Nodes)
            {
                DisplayNode(node);
            }
     }
 public void DisplayNode(TreeNode node)
        {
            textBox1.AppendText(node.Text+"\r\n");
            if (node.Nodes.Count > 0)  //如果节点有子节点
            {
                foreach (TreeNode childNode in node.Nodes)   //遍历当前节点的子节点
                {
                    DisplayNode(childNode);  //显示子节点。不用仔细分析调用过程
                }
            }
        }

你可能感兴趣的:(C#WinForm)