我正在winform界面做一个treeview树形表单维护,但是表中没有父节点ID,和正常的ID编号,要求通过名称对应的编码以及对应的层级,进行树形显示,然后点击其中一个节点,可以在我右侧设置的框中,显示其名称和编码以及它的上一级名称和编码,谢谢大家费心,如果答案被采用,肯定多多加分

解决方案 »

  1.   

    生成树形结构http://www.baidu.com/link?url=fe86d255ba3a32124973f36af092e980d0fe89912a47a3a734d283caf0d248127648b7fd75d6a29b34e0498f7cf2cb0e59ff5856e828c2b3af1eedf04d024b568c297cde85fabec8f5647cfcc5e4da0051471d002e868f12f63d1045b0adcc70c8095f7c101cdfcde128dce7835f70d8
    点击不就是节点切换吗,treeview提供了事件,自己看帮助
      

  2.   


    //ParentNode
                TreeNode tn = new TreeNode();
                tn.Name = null;
                tn.Text = "All Classes";
                tvclass.Nodes.Add(tn);
    //ChildNode
                    TreeNode tnclass = new TreeNode();
                    tnclass.Name = "";
                    tnclass.Text = "";
                    tn.Nodes.Add(tnclass);
    /// <summary>
    /// NodeSelectedChanged
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void tvclass_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
               string selectednode=e.Node.Name;
               DoWhatYouWant(selectednode)
            }
      

  3.   

    这是通过对象绑定的,,稍微改下
            private void bindTvType()
            {
                category[] cats = DBhelper.getAllCategory();
                if (cats != null)
                {                foreach (category item in cats)
                    {
                        TreeNode node = new TreeNode();
                        if (!item.parentIdSpecified)
                        {
                            node.Text = item.name;
                            node.Tag = item.id;
                            node.Name = item.id + "";
                            bindChild(cats, node);
                            tvType.Nodes.Add(node);
                        }
                    }
                }
                tvType.HideSelection = false;
            }        private void bindChild(category[] cats, TreeNode tn)
            {
                foreach (category item in cats)
                {
                    TreeNode node = new TreeNode();
                    if (item.parentId == int.Parse(tn.Name))
                    {
                        node.Text = item.name;
                        node.Tag = item;
                        node.Name = item.id + "";
                        tn.Nodes.Add(node);
                        bindChild(cats, node);
                    }
                }
            }
      

  4.   

    http://blog.csdn.net/xianfajushi/article/details/7756584