Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么TreeView控件创建空白节点?_C#_.net_Winforms_Treeview - Fatal编程技术网

C# 为什么TreeView控件创建空白节点?

C# 为什么TreeView控件创建空白节点?,c#,.net,winforms,treeview,C#,.net,Winforms,Treeview,首先请参阅以下代码和图像。 代码A treeView1.Nodes.Add("Node A"); treeView1.Nodes.Add("Node B"); 输出: 代码B 现在我的问题是treeView1.Nodes.Add(tn)创建一个空白节点,但我的要求类似于代码a的图像类型(没有空白节点)。如果你需要任何其他信息,请告诉我。 更新 实际上,我的代码中有一个函数返回一个TreeNode,我必须将此节点添加到TreeView控件中,而不使用第一个空白级别。此代码: TreeN

首先请参阅以下代码和图像。

代码A

treeView1.Nodes.Add("Node A");
treeView1.Nodes.Add("Node B");
输出:


代码B


现在我的问题是
treeView1.Nodes.Add(tn)创建一个空白节点,但我的要求类似于
代码a的
图像类型(没有空白节点)。如果你需要任何其他信息,请告诉我。
更新
实际上,我的代码中有一个函数返回一个
TreeNode
,我必须将此节点添加到
TreeView
控件中,而不使用第一个空白级别。

此代码:

TreeNode tn = new TreeNode();
创建实际项目。您没有给它任何文本,因此它显示为空白。接下来的两行正在向空白节点添加子节点。

如果你的目标是“A”中的代码,为什么要写“B”

编辑:回答您的更新问题

您有一个返回根空树节点的函数,该节点包含您想要的子节点。所以,像这样的事情是正常的

foreach (var node in returnedNode.Nodes)
{
    treeView1.Nodes.Add(node);
}


treeView1.Nodes.AddRange(returnedNode.Nodes.Cast().ToArray());

您必须直接在
treeView1
下添加节点,而不是在第二个代码段中的子节点下添加节点。

根节点的名称为空,因为您使用了

尝试使用指定
tn
节点的名称

更新:自问题更新后

只需为函数返回的节点设置
Text
属性:

TreeNode treeNode = YourMethodWhichCreatesTreeNode();
treeNode.Text = "Root Node Name";
treeView.Nodes.Add(treeNode);

如果您有一个返回树节点的函数,并且希望将其添加到TreeView的根目录中,只需编写TreeView w1.Nodes.add(yourReturnedTreeNode)@穆哲:听起来不太对。我怀疑他想添加返回节点的子节点,而不添加返回节点本身。如果是这样的话,我修改后的答案会有所帮助。人们只能胡乱猜测他到底想做什么,我从字面上理解为“我的代码中有一个函数返回一个树节点,我必须将这个节点添加到树视图控件”。我们可以通过使用
TreeNode tn=new TreeNode()
默认构造函数来实现同样的功能吗?是的,我们可以。TreeNode t1=新的TreeNode();t1.Text=“节点A”;treeView1.Nodes.Add(t1);我们是否可以删除
TreeView
的0级,使treenode(按函数返回)只显示在0级?Jams:要么我不理解你的问题,要么我的代码编辑部分已经出现了这种情况。(在添加returnedNode的节点之前,请确保treeView1是空的。)您对问题理解得很好,编辑答案也很好,但我也在尝试其他方法,如果不可能,那么您的答案就在这里解决问题。@jams:附加选项更符合您的风格吗?
treeView1.nodes.AddRange(returnedNode.Nodes.Cast().ToArray());
这是我的精确解决方案,感谢您的耐心等待。
treeView1.Nodes.AddRange(returnedNode.Nodes.Cast<TreeNode>().ToArray());
TreeNode t1 = new TreeNode( "Node A" );         
treeView1.Nodes.Add( t1 );
TreeNode t2 = new TreeNode( "Node B" );         
treeView1.Nodes.Add( t2 );
    // specify name of the root node
    TreeNode tn = new TreeNode("Root Node Name");
    tn.Nodes.Add("Node A");
    tn.Nodes.Add("Node B");
    treeView1.Nodes.Add(tn);
TreeNode treeNode = YourMethodWhichCreatesTreeNode();
treeNode.Text = "Root Node Name";
treeView.Nodes.Add(treeNode);