首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何为TreeView中的某些节点而不是所有节点设置图像?

如何为TreeView中的某些节点而不是所有节点设置图像?
EN

Stack Overflow用户
提问于 2008-11-04 12:04:45
回答 5查看 35.6K关注 0票数 22

我有一个带有ImageListTreeView windows窗体控件,我希望其中一些节点显示图像,但其他节点不显示图像。

我不想在图像应该出现的地方留出空格。我不希望图像看起来像没有ImageList时TreeView会绘制的线条。我如何让它为一些项目而不是其他项目绘制图像,而不是求助于像那样笨拙的黑客?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-11-04 16:36:21

我试过一次,但我认为这是不可能的。

如果您尝试将ImageKeyImageIndex都设置为“未设置”值,则控件只会将ImageIndex默认设置为0。以下代码:

代码语言:javascript
复制
treeView.ImageKey = "Value";
Debug.WriteLine(treeView.ImageIndex);
treeView.ImageKey = null;
Debug.WriteLine(treeView.ImageIndex);
treeView.ImageIndex = -1;
Debug.WriteLine(treeView.ImageIndex);

生成输出:

代码语言:javascript
复制
-1
0
0

这种方式告诉您,控件开发人员希望确保始终存在默认图像。我担心,这只会给你留下黑客的选择。

票数 8
EN

Stack Overflow用户

发布于 2009-06-17 20:55:49

您需要将ImageIndexSelectedImageIndex设置为一个大于ImageList中的值数的数字。例如,如果您创建此节点并将其添加到TreeView

代码语言:javascript
复制
TreeNode node1 = new TreeNode(string.Empty, 12, 12); // imageList1.Count = 5

您将在TreeView中插入一个不可见的TreeNode。我改变了我的TreeView的背景颜色,但它仍然是看不见的。

(我用谷歌搜索了一段时间,最终在这里找到了答案:http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.windowsforms/2006-09/msg00322.html)

票数 12
EN

Stack Overflow用户

发布于 2013-12-17 00:49:59

我选择做的是使用点的图像来表示那些不应该有图像的TreeView节点。

我将此图像添加为列表中的最后一个图像,如果该项目不应包含图像,则将其设置为ImageList.Images.Count-1

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/261660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档