【问题标题】:+ sign in front of a tree node+ 在树节点前签名
【发布时间】:2010-11-20 15:16:45
【问题描述】:

你好,

我正在使用 Visual Studio 2005 在 C# 中处理树视图,并希望在我的 Windows 窗体应用程序中按下按钮时找到一个树节点并在其下方添加节点。 我试过使用 treeView1.Nodes.Find("My_Text", true); 其中“My_Text”是与我要在其下添加模式节点的节点关联的文本。

但是我无法找到一种方法来利用它,因为我不知道这个语句返回什么。

我打算使用 treeView1.SelectedNode.Nodes.Add(newnode);添加节点,但为此我需要先选择一个节点。而且 treeView1.Nodes.Find 看起来并不像它为我选择的节点。有什么帮助吗?

【问题讨论】:

    标签: c# visual-studio treeview


    【解决方案1】:

    treeView1.Nodes.Find() 返回TreeNode 对象的数组。如果您确定只有一个这样的节点,您可以这样做:

     var node = treeView1.Nodes.Find("My_Text", true)[0];
     node.Nodes.Add(newnode);
    

    如果可以有多个这样的节点,您首先需要一些其他方法来消除歧义。如果没有这样的节点,你还需要在里面添加一些错误检查。

    【讨论】:

      【解决方案2】:

      您确定您的应用程序中存在带有给出文本的节点吗?我刚刚尝试了一个简单的测试应用程序,Find 方法没有问题...

          private void button1_Click(object sender, EventArgs e) {
              // WARNING: add checks
              TreeNode[] nodes = treeView1.Nodes.Find("Node2",true);
              TreeNode node = nodes[0];
              node.Nodes.Add("child node");
          }
      

      【讨论】:

        【解决方案3】:

        TreeView.Nodes.Find 返回与您指定的字符串匹配的节点数组。然后,您可以在节点上使用 Add 方法添加子节点,显然,如果数组中有超过 1 个节点,那么您的情况并不独特,因此如果您正在寻找特定节点,则需要更多信息在其上识别它。

        【讨论】:

          【解决方案4】:

          你需要使用 SelectedNode.Nodes.Add() 吗? Nodes.Add(...) 操作可以在任何 TreeNode 上执行。因此,如果您完全可以找到该节点,只需调用 node.Nodes.Add(..)。您无需先选择它。

          查看文档或智能感知信息以了解 Find() 方法返回的内容。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-10-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-17
            • 1970-01-01
            相关资源
            最近更新 更多