首页 > 解决方案 > 从 TreeView C# 将变量分配给二维数组

问题描述

我目前有一个正在 Visual Studio 中开发的 Windows 窗体。它有多个文本框、两个按钮和一个Treeview. 在此Treeview,有多个“根”节点,然后这些节点有多个“子”节点。我需要返回用户检查的每个节点。

我的想法是使用二维数组并将“父”节点放在第 1 列,将它们的子节点放在第 2、3、4 列等......(取决于检查的子节点数量)。

我遇到的问题是我可以MessageBox正确检查每个节点,但不能将该值分配给二维数组中的位置。请参阅下面的代码和表单片段。

 private void button1_Click(object sender, EventArgs e)
    {
        int a = 0;
        int b = 1;
        
            //downcause[a, a] = "test";
            MessageBox.Show(downcause[a, a]);
        
        foreach (TreeNode tn  in treeView1.Nodes)
        {                
            if (tn.Checked)
            {
                string holdparent = Convert.ToString(tn.Text);
                downcause[a, a] = Convert.ToString(tn.Text);
               
                MessageBox.Show(holdparent);
                MessageBox.Show("array - > ", downcause[a,a]);
                foreach (TreeNode child in tn.Nodes)
                {
                    if (child.Checked)
                    {                            
                        string holdchild = Convert.ToString(child.Text);
                        downcause[a, b] = holdparent;                            
                        MessageBox.Show(holdchild);
                        MessageBox.Show("array - > ", downcause[a, b]);
                        b++;
                    }
                }

                a++;
            }
        }   
    }

选择了 Treeview 节点的表单

在此处输入图像描述

在按钮单击时,它显示选中的父节点:

在此处输入图像描述

尝试在二维数组中输出数据时,它为空:

在此处输入图像描述

标签: c#arrayswinformsmultidimensional-array

解决方案


推荐阅读