最新消息:服务器现已从linode换到fzhost.net,且主题已从retina 0.2换为大前端D8

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

C# crifan 32浏览 0评论

【背景】

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

但是用代码:

            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

中的代码:

                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.所以去添加相关代码:

            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,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
51 queries in 0.343 seconds, using 12.71MB memory