none
求助关于treeview无法显示绑定后的图标 RRS feed

  • 问题

  •  foreach (DataRow obj in dr)
       {
         string text = obj[Globalconf.COL_ACCOUNT_U] + "";//标题
         trnodes[i] = new TreeNode(text);
         trnodes[i].Name = obj[Globalconf.COL_SEUI_ID] + "";
    	 trnode[i].ImageIndex=0;//已经在imageList中绑定了图片,默认0 index
         trnodes[i].Tag = obj[Globalconf.COL_RQUOTA] + "";
        i++;
    
       }
    treeview.Nodes.AddRange(trnode)
    
    <br/>
    
    <br/>
    
    但运行后 树前会有一个明显的白色空格区域,该区域本来应该显示图片,但现在却是白色的图片不显示。试过很多次都不显示。到底是什么问题导致?有什么好的解决方案呢?
    
    2011年5月5日 2:01

全部回复

  • 确定你的ImageList已经绑定到TreeView了,注意查看TreeView控件的ImageList不是空白的。

    我做了一个非常简单的示例程序:

     private void Form1_Load(object sender, EventArgs e)
            {
                for (int i = 0; i < imageList1.Images.Count; i++)
                {
                    TreeNode node = new TreeNode();
                    node.Name = "Test"+i;
                    node.Text = "Test" + i; ;
                    node.ImageIndex = i;
                    treeView1.Nodes.Add(node);
                }
            }


    如果你有其它意见或私下交流,请点击此处
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月5日 3:25
    版主
  • 对,我查看过 确定已经绑定了imagelist 我也在winform新建了一个项目用同样方法生成了树并且图片就能显示,可是放到该项目中后只显示空白。。。完全找不出原因是什么。方便的话可以加msn ryan-ren0203@hotmail.com  QQ:356730223 

    可以截图给你看效果

    2011年5月5日 3:52
  • 在QQ上看了你的问题,的确很奇怪。

    建议另外做一个Demo,然后用正常的Demo窗体的那个替换你当前的。

    同时先暂时不要用自定义控件。


    如果你有其它意见或私下交流,请点击此处
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月5日 6:13
    版主
  • 现在您的代码中显式的指定了 ImageIndex = 0,这个不管有没有绑定,图片都是第一个 ImageList 中的图片。您首先要看 ImageIndex = 0 的图片是不是存在,确定 ImageList 中确实有图片。

    第二个方法就是用 ImageKey,而不用 ImageIndex。

    第三种方法就是每次创建 ListViewItem 时,把 ListView.ImageList 重新赋值。

    另外,图片格式不匹配,大小,颜色等都有可能导致图片显示不出来的。

    有什么问题,检查完上述项目后再来发帖。


    Mark Zhou
    2011年5月5日 9:40
  • 这些都调整过,全都符合规范 ,但仍然不显示图片,不知道是哪里的影响
    2011年5月5日 11:06
  • 楼主是在后台线程进行更改的吗? 还是在主线程更改的?

    如果是跨线程更改界面,需要使用代理/委托

    2011年5月5日 15:58
  • 强力建议你在TreeView的属性(ImageIndex)设置成0,看看效果如何?

    如果还是不行,看来肯定你项目问题,排除其它可能(如果图片没有问题)

    你只能把Demo的窗体图片替换你当前项目的了。


    如果你有其它意见或私下交流,请点击此处
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月6日 8:02
    版主