用微软自带的树控件啊,编程实现。
以前的代码仅供参考
   foreach (DataRow dr in dtAppList.Rows)
            {
                string parentID = dr["ParentID"] != DBNull.Value ? dr["ParentID"].ToString() : string.Empty;
                string ID = dr["ID"] != DBNull.Value ? dr["ID"].ToString() : string.Empty;
                string FullName = dr["ShortName"] != DBNull.Value ? dr["ShortName"].ToString() : string.Empty;
                if (dtAppList.Select("ID ='" + parentID + "'").Length == 0)
                {
                    TreeNode rootNode = new TreeNode(FullName, ID);
                    rootNode.Expanded = true;
                    rootNode.SelectAction = TreeNodeSelectAction.SelectExpand;
                    this.TreeView1.Nodes.Add(rootNode);
                    AppendSubNodes(rootNode,dtAppList);
                }
            }
AppendSubNodes添加子节点,里面循环执行下就行了。