I have a TreeView
windows forms control with an ImageList
, and I want some of the nodes to display images, but the others to not have images.
I don't want a blank space where the image should be. I don't want an image that looks like the lines that the TreeView would draw if it didn't have an ImageList. How do I get it to draw images for some items and not others, without resorting to clumsy hacks like that?
The TreeView allows you to edit nodes by setting the allowEditing property to true. To directly edit the nodes in place, double click the TreeView node or select the node and press F2 key. When editing is completed by focus out or by pressing the Enter key, the modified node's text saves automatically.
You need to set ImageIndex
and SelectedImageIndex
to a number that is higher than the number of values in your ImageList
. For example, if you create this node and add it to your TreeView
:
TreeNode node1 = new TreeNode(string.Empty, 12, 12); // imageList1.Count = 5
you will have an invisible TreeNode
inserted into your TreeView
. I changed the background color of my TreeView
and it was still invisible.
(I googled this for some time, and I eventually found the answer here: http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.windowsforms/2006-09/msg00322.html)
What I have chosen to do is to use an image of dots for those TreeView
nodes that are not supposed to have an image.
I add this image as the last image in the list, and if the item is not supposed to have an image I set it to ImageList.Images.Count-1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With