蓝客社区

游客 您好,登录 | 注册

致蓝客社区的会员们:
即日起,社区论坛部分技术交流版块启用身份验证机制,须符合该版块要求的技术标准才能进入,不便之处敬请见谅!
网络信息安全交流QQ群:187228、会员交流聊天QQ群:42417627
论坛 » .NET编程技术 » C#关于关于treeView

C#关于关于treeView (2蓝豆)

独钓寒江积分等级:LV0 经验等级:Exp0
#1发表于 2014-03-22 15:26 回复:2 查看:13734
/*                               数据库                                       */
use Test
CREATE TABLE TreeStructure(
ID int IDENTITY(1,1) NOT NULL,
GroupID [int] NULL,
Name varchar(30) NOT NULL
);
INSERT INTO TreeStructure(GroupID,Name)VALUES(0,'财务部'); 
INSERT INTO TreeStructure(GroupID,Name)VALUES(0,'研发部');
INSERT INTO TreeStructure(GroupID,Name)VALUES(2,'经理'); 
INSERT INTO TreeStructure(GroupID,Name)VALUES(2,'主管');
INSERT INTO TreeStructure(GroupID,Name)VALUES(2,'组长');
INSERT INTO TreeStructure(GroupID,Name)VALUES(2,'本人'); 
INSERT INTO TreeStructure(GroupID,Name)VALUES(0,'生产部');
INSERT INTO TreeStructure(GroupID,Name)VALUES(0,'行政部');
INSERT INTO TreeStructure(GroupID,Name)VALUES(0,'商务部');

/*                               数据库                                       */

FormLoad事件
            TreeNode tn = new TreeNode();
            tn.Text = "树结构";
            tn.Name = "0";
            treeView1.Nodes.Add(tn);
            LoadTree(); //TreeView加载
public void LoadTree()
        {
          
            SqlDataReader reader;
            TreeNode MyTreeNode = treeView1.Nodes[0];
            MyTreeNode.Nodes.Clear();
            if (cdb.ConnectionDB())
            {
                SqlCommand cmd = new SqlCommand("SELECT ID,GroupID,Name FROM TreeStructure", cdb.Connection());
                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    string id = reader["ID"].ToString();
                    string gid = reader["GroupID"].ToString();
                    string name = reader["Name"].ToString();
                    if (gid == "0")
                    {
                        TreeNode tn = new TreeNode();
                        tn.Text = name;
                        tn.Name = id;
                        MyTreeNode.Nodes.Add(tn);
                    }
                    else
                    {
                        SetNode(treeView1.Nodes, gid, id, name);
                    }
                }
                reader.Close();
            }
            else 
            {
                MessageBox.Show("数据库连接未成功!");
                return;
            }
        public void SetNode(TreeNodeCollection nds, string sid, string id, string pname)
        {
            foreach (TreeNode tnd in nds)
            {
                if (tnd.Name == sid)
                {
                    TreeNode nd = new TreeNode();
                    nd.Name = id;
                    nd.Text = pname;
                    tnd.Nodes.Add(nd);
                    return;
                }
                else
                {
                    SetNode(tnd.Nodes, sid, id, pname);
                }
            }
        }
刚接触到treeView,附上代码,大家一起讨论一下,遇到问题如下:
1、有些节点加不进来

效果图

2、怎么删除节点呢,如果该节点下有N层子节点,有什么简便的删除呢?


快乐_幸せな积分等级:LV0 经验等级:Exp0
#2发表于 2015-08-10 03:02

@独钓寒江
/*                               数据库                                       */
use Test CREATE TABLE TreeStructure( ID int IDENTITY(1,1) NOT NULL, GroupID [int] NULL, Name varchar(30) NOT NULL ); INSERT INTO TreeStructure(GroupID,Name)VALUES(0,'财务部'); INSERT INTO TreeStructure(GroupID,Name)VALUES(0,……

啊=。=你是。。。。。。政府官员?还是说。。。。。是ceo
追梦人456积分等级:LV0 经验等级:Exp0
#3发表于 2016-06-02 17:15
学习一下关于treeView的知识