有没有一种方法可以返回treeView [C#]中的复选框列表

问题描述

这是我尝试过的

namespace USCS
{
    public partial class Form5 : Form
    {
        List<String> CheckedNodes = new List<String>();
        public Form5()
        {
            
            InitializeComponent();
            InitializeTreeView();
        }

        private void treeView1_AfterSelect(object sender,TreeViewEventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender,EventArgs e)
        {

        }

        private void toolTip1_Popup(object sender,PopupEventArgs e)
        {
            
        }

        private void radioButton1_CheckedChanged(object sender,EventArgs e)
        {

        }

        private void treeView1_AfterSelect_1(object sender,TreeViewEventArgs e)
        {
            if (e.Node.Checked)
            {
                CheckedNodes.Add(e.Node.FullPath.ToString());
            }
            else
            {
                CheckedNodes.Remove(e.Node.FullPath.ToString());
            }
        }

        private void treeView1_AfterSelect_2(object sender,TreeViewEventArgs e)
        {
            if (e.Node.Checked)
            {
                CheckedNodes.Add(e.Node.FullPath.ToString());
            }
            else
            {
                CheckedNodes.Remove(e.Node.FullPath.ToString());
            }
        }

        private void button1_Click(object sender,EventArgs e)
        {
            Behavior desc_behav = new Behavior();
            
            setBehaviorData(desc_behav);
           // Form5.ActiveForm.Hide();
           // var myForm = new Form5();
         //   myForm.Show();
        }
        private void InitializeTreeView()
        {
            treeView1.BeginUpdate();
            treeView1.Nodes.Add("Parent");
            treeView1.Nodes[0].Nodes.Add("Child 1");
            treeView1.Nodes[0].Nodes.Add("Child 2");
            treeView1.Nodes[0].Nodes[1].Nodes.Add("Grandchild");
            treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("Great Grandchild");
            treeView1.EndUpdate();
            
        }


        private void setBehaviorData(Behavior desc_behav)
        {
            var message = CheckedNodes[0];
            MessageBox.Show(message.ToString());



        }
        private void Traverse(TreeNodeCollection nodes)
        {
            String f;

            foreach (TreeNode node in nodes)
            {
                f = node.Text;
                Traverse(node.Nodes);
            }
            

        }
    }
}

如您所见,我正在尝试在treeView中获取所选用户框的“文件路径”。我只是不断收到“索引超出范围”的错误消息,这是没有意义的,因为它是从索引0拉出的,或者当我尝试直接调用列表时,我只会收到System.checkednodes [system]消息。

从字面上看,只是希望它返回名称路径的字符串。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)