最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】给TreeView添加TreeNode节点后但是名字没显示出来

C# crifan 5846浏览 0评论

【背景】

用C#给TreeView控件添加TreeNode节点。

但是用代码:

1
2
3
4
5
6
7
8
foreach (crifanLibAws.awsBrowseNode mainBrowserNode in gMainBrowserNodeList)
{
    TreeNode rootTreeNode = new TreeNode();
    rootTreeNode.Name = mainBrowserNode.Name;
    rootTreeNode.Tag = mainBrowserNode;
    trvCategoryTree.Nodes.Add(rootTreeNode);
    //initSingleRootBrowseNode(mainBrowserNode.Name, rootTreeNode);
}

结果显示出来的是空的,名字没显示出来:

treenode added name not show

【折腾过程】

1.后来还是参考之前自己在:

http://code.google.com/p/insertskydrivefiles/source/browse/trunk/InsertSkydriveFiles/skydrive.cs

中的代码:

1
2
3
4
5
6
int picIdx = getPicIdx(rootItem.iconType, rootItem.extension);
TreeNode rootNode = new TreeNode(rootItem.fullName, picIdx, picIdx);
rootNode.Tag = rootItem;
 
trvSkydrive.Nodes.Add(rootNode);
trvSkydrive.SelectedNode = rootNode;

然后现在看到好像是TreeNode的Text没有设置。

2.所以去添加相关代码:

1
2
3
4
5
6
7
8
9
foreach (crifanLibAws.awsBrowseNode mainBrowserNode in gMainBrowserNodeList)
{
    TreeNode rootTreeNode = new TreeNode();
    //rootTreeNode.Name = mainBrowserNode.Name;
    rootTreeNode.Text = mainBrowserNode.Name;
    rootTreeNode.Tag = mainBrowserNode;
    trvCategoryTree.Nodes.Add(rootTreeNode);
    //initSingleRootBrowseNode(mainBrowserNode.Name, rootTreeNode);
}

结果就可以正常显示出TreeNode的名字了:

name of treenode can show

【总结】

TreeNode加入到TreeView但是不显示名字,是因为加入的TreeNode没有设置Text

(虽然设置了TreeNode的Name,但是实际上用于显示的是Text而不是Name)

所以,在把TreeNode加入TreeView之前,设置好对应的Text即可正常显示。

转载请注明:在路上 » 【已解决】给TreeView添加TreeNode节点后但是名字没显示出来

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.196 seconds, using 22.12MB memory