日期:2014-05-18  浏览次数:21233 次

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; 
        } 
   } 
}