c# Winform给treeview添加图标问题
我动态生成一个树形目录后,想在每个节点前添加图标。
添加之前先判断,这个节点是否有子节点,如果有则添加一种图标,如果没有,则添加另外一种图标。
我的程序如下:(事先在imagelist1中放了两个图标)
treeView1.Imagelist = imagelist1;
foreach(TreeNode node in treeView1.Nodes)
{
if(node.Nodes.Count>0)
{
node.ImageIndex=0;
}
else
{
node.ImageIndex=1;
}
}
但是程序运行后,所有节点就只显示索引为0的图标,不知道为什么,望高手指点!
------解决方案--------------------代码有错误。
foreach(TreeNode node in treeView1.Nodes)
上面这个循环只能遍历到第一级节点,应该使用递归的方法,不难。
------解决方案--------------------
C# code
treeView1.Imagelist = imagelist1;
SetIcon(treeView1.Nodes[0]);
...
private void SetIcon(TreeNode tn)
{
foreach(TreeNode node in tn.Nodes)
{
if(node.Nodes.Count>0)
{
node.ImageIndex=0;
SetIcon(node);
}
else
{
node.ImageIndex=1;
}
}
}