我在向树视图添加多个父节点时遇到问题

时间:2017-07-19 21:55:02

标签: c# treeview

当我想添加父节点时,我添加的第一个工作, Parent Node 1 但是当我想添加另一个具有相同功能的父级时,会发生这种情况: Parent Node 2

Heres My Code:

public void add()         {

        TreeView t = new TreeView();
        t = treeView1;
        names.Add(textBox1.Text);
        passwords.Add(textBox2.Text);
        emails.Add(textBox3.Text);
        websites.Add(textBox4.Text);

        string addedname = textBox1.Text;
        string addedpass = textBox2.Text;
        string addedemail = textBox3.Text;
        string addedwebsite = textBox4.Text;
        string nodename = textBox5.Text;
        int treecount = 0;

        removewhat = nodename;

        t.Nodes.Add(nodename);
        t.Nodes[treecount].Nodes.Add($"Username: {addedname?? "Empty"}");
        t.Nodes[treecount].Nodes.Add($"Password: {addedpass?? "Empty"}");
        t.Nodes[treecount].Nodes.Add($"Email: {addedemail?? "Empty"}");
        t.Nodes[treecount].Nodes.Add($"Website: {addedwebsite ?? "Empty"}");

        treecount += 1;

        removewhat = null;
        nodename = null;
        addedname = null;
        addedpass = null;
        addedemail = null;
        addedwebsite = null;

        textBox3.Clear();
        textBox4.Clear();
        textBox1.Clear();
        textBox2.Clear();
        textBox5.Clear();
    }

2 个答案:

答案 0 :(得分:0)

它们全部出现在顶层节点中的原因是您使用值为0的treecount来索引节点。因此,t.Nodes [treecount]将始终是列表中的第一个节点,而不是新创建的节点。

我认为更简单,更清晰的方法是添加整个节点:

TreeNode newNode = new TreeNode(nodename);
newNode.Nodes.Add($"Username: {addedname ?? "Empty"}");
newNode.Nodes.Add($"Password: {addedpass ?? "Empty"}");
newNode.Nodes.Add($"Email: {addedemail ?? "Empty"}");
newNode.Nodes.Add($"Website: {addedwebsite ?? "Empty"}");

treeView1.Nodes.Add(newNode);

这样你根本不需要关心索引。

答案 1 :(得分:0)

设置整数以在刷新

后将子项添加回零

在void

之外添加整数