【背景】
用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即可正常显示。