【问题标题】:How to have an array of Treenode如何拥有一个Treenode数组
【发布时间】:2010-08-31 07:04:35
【问题描述】:

我希望有一个 treenode 数组,如果我添加一个自定义节点以及该数组中声明的剩余节点应该作为子节点添加到添加的自定义节点。

最初我将有一个带有 Header 节点的树视图,如果我右击它,我将有一个带有选项 addnew 的上下文菜单。当我单击它时,我将有一个保存文件对话框选项来保存文件,我会将其作为子节点绑定到该根节点。除此之外,我想将更多节点作为子节点添加到绑定节点

【问题讨论】:

  • 这个问题不是很清楚(至少对我来说)。你能详细说明你想做什么吗?
  • 在这种情况下使用 Treenode 有多重要。仅从我得到的问题来看,XML 几乎是更好的选择......
  • Fredrik : 如果不清楚,我已经更新了我的问题,我会再次解释

标签: c# winforms treeview


【解决方案1】:

这为我找到了答案

private void AddNew_Click(object sender, EventArgs e)
{
    Stream myStream;
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();

    saveFileDialog1.InitialDirectory = @"C:\";
    //saveFileDialog1.CheckFileExists = true;
    //saveFileDialog1.CheckPathExists = true;
    saveFileDialog1.DefaultExt = "txt";

    saveFileDialog1.Filter = "(*.txt)|*.txt";
    saveFileDialog1.FilterIndex = 2;
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {

        if ((myStream = saveFileDialog1.OpenFile()) != null)
        {

            string FileName = saveFileDialog1.FileName;
            TreeNode newNode = new TreeNode(FileName);
            newNode.SelectedImageIndex = 1;
            tvwACH.SelectedNode.Nodes.Add(newNode);
            newNode.Nodes.Add("FileHeader");
            newNode.Nodes.Add("BatchHeader");
            newNode.Nodes.Add("EntryDetail");
            // TODO: Add code here to save the current contents of the form to a file.
            //myStream.Close();                
        }
    }
}

【讨论】:

    【解决方案2】:

    一种选择是简单地按照规定制作数组,然后当您想将它们添加为新创建节点的子节点时,通过它们进行遍历:

    foreach(var node in nodeArray)
        newNode.Nodes.Add(node);
    

    类似的东西应该可以为您解决问题。

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 2012-11-01
      • 2013-07-18
      • 2019-12-02
      • 2011-05-12
      • 2018-11-14
      • 2021-09-30
      • 2020-05-07
      • 2011-11-28
      相关资源
      最近更新 更多