首先看下面的代码和图片。
代码A
treeView1.Nodes.Add("Node A");
treeView1.Nodes.Add("Node B");
输出:
代码B
TreeNode tn = new TreeNode();
tn.Nodes.Add("Node A");
tn.Nodes.Add("Node B");
treeView1.Nodes.Add(tn);
现在我的问题是treeView1.Nodes.Add(tn);
创建一个空白节点,但我的要求就像Code A's
图像类型(没有空白节点)。如果您需要任何其他信息,请告诉我。
的更新
实际上,我的代码中的一个函数返回TreeNode
,我必须将此节点添加到TreeView
控件,而不是第一个空白级别。
答案 0 :(得分:5)
此代码:
TreeNode tn = new TreeNode();
创建一个实际项目。你没有给它任何文字,所以它看起来是空白的。然后接下来的两行是将子节点添加到空白节点。
如果您的目标是“A”中的代码,为什么要写“B”?
修改:对您更新的问题的回复
您有一个函数返回一个根空白树节点,其中包含您想要的子节点。所以,这样的事情是有序的。
foreach (var node in returnedNode.Nodes)
{
treeView1.Nodes.Add(node);
}
OR
treeView1.Nodes.AddRange(returnedNode.Nodes.Cast<TreeNode>().ToArray());
答案 1 :(得分:2)
TreeNode t1 = new TreeNode( "Node A" );
treeView1.Nodes.Add( t1 );
TreeNode t2 = new TreeNode( "Node B" );
treeView1.Nodes.Add( t2 );
您必须直接在treeView1
下添加节点,而不是在第二个代码段中添加节点。
答案 2 :(得分:2)
根节点的名称为空,因为您已使用default constructor of the TreeNode class。
尝试使用TreeNode(string text) constructor
指定tn
节点的名称
// 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);
更新:问题已更新
只需为函数返回的节点设置Text
属性:
TreeNode treeNode = YourMethodWhichCreatesTreeNode();
treeNode.Text = "Root Node Name";
treeView.Nodes.Add(treeNode);