【背景】
用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); }
结果显示出来的是空的,名字没显示出来:
【折腾过程】
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的名字了:
【总结】
TreeNode加入到TreeView但是不显示名字,是因为加入的TreeNode没有设置Text
(虽然设置了TreeNode的Name,但是实际上用于显示的是Text而不是Name)
所以,在把TreeNode加入TreeView之前,设置好对应的Text即可正常显示。