Joh*_*her 12
您需要设置ImageIndex,并SelectedImageIndex为一个数字,比数值在数较高ImageList.例如,如果您创建此节点并将其添加到您的TreeView:
TreeNode node1 = new TreeNode(string.Empty, 12, 12); // imageList1.Count = 5
Run Code Online (Sandbox Code Playgroud)
你将有一个隐形TreeNode插入你的TreeView.我改变了我的背景颜色,TreeView它仍然是看不见的.
(我用谷歌搜索了一段时间,我最终找到了答案:http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.windowsforms/2006-09/msg00322.html)
我选择做的是为那些TreeView不应该有图像的节点使用点图像.

我将此图像添加为列表中的最后一个图像,如果该项目不应该有图像我将其设置为 ImageList.Images.Count-1
我尝试了一次,我认为不可能.
如果你试图同时设置ImageKey并ImageIndex以"未设置"值控制只是默认ImageIndex为0下面的代码:
treeView.ImageKey = "Value";
Debug.WriteLine(treeView.ImageIndex);
treeView.ImageKey = null;
Debug.WriteLine(treeView.ImageIndex);
treeView.ImageIndex = -1;
Debug.WriteLine(treeView.ImageIndex);
Run Code Online (Sandbox Code Playgroud)
产生输出:
-1
0
0
Run Code Online (Sandbox Code Playgroud)
这种方式告诉您控件开发人员希望确保始终存在默认图像.那只是让你害怕的黑客选择.
小智 8
我发现在TreeView上使用StateImageList而不是ImageList只会在TreeNode上的StateImageIndex等于或大于0时显示图像