C# 阻止TreeView根节点上的映像,并阻止所选节点默认为映像0
我有一个C# 阻止TreeView根节点上的映像,并阻止所选节点默认为映像0,c#,.net-4.0,treeview,C#,.net 4.0,Treeview,我有一个TreeView,在运行时填充了ImageList。此TreeView只有一个根节点,其他所有内容都是该根节点的直接子节点 我有两个问题: 1) 我的根节点有一个映像,我不想要 //I tried to put -1, because this property has a default 0 (non-nullable int) this.Nodes[0].ImageIndex = -1; //But nothing happened. 2) 所选节点始终将图像更改为索引0,但不应更
TreeView
,在运行时填充了ImageList
。此TreeView
只有一个根节点,其他所有内容都是该根节点的直接子节点
我有两个问题:
1) 我的根节点有一个映像,我不想要
//I tried to put -1, because this property has a default 0 (non-nullable int)
this.Nodes[0].ImageIndex = -1;
//But nothing happened.
2) 所选节点始终将图像更改为索引0,但不应更改
//Again, changing to -1 did nothing.
this.SelectedImageIndex = -1;
例如:
获取一个空白的.ico文件(您可以使用此文件:)并将其添加到图像列表中。将图像设置为Balk.ICO.的索引。最终结果应该是一个没有图标的列表视图节点。下面是它的一个示例:
对于第一个问题,请看这里:如果设置图像,则所有节点都需要图像;如果设置器为-1,则将值设置为0;如果小于-1,则抛出索引越界异常。你也许可以通过一个混乱的黑客程序获得你想要的功能,但是最好的办法是创建你自己的用户控件。在设置为其他内容之前,将索引设置为
-1
,不会引发异常。但是谢谢。也许是时候使用自己的用户控件了。将其设置为-1
会起作用,因为setter会将值设置为0
,但如果将其设置为其他值,例如-2
,则会引发异常。用户控件是最干净的方式,但是看看我在上面发布的问题中的一些其他答案,您可能能够实现您想要的。看看答案user1887120 POSTED就可以了,羞耻是因为我的图片太大而留下的空白。谢谢