在表单上有一个树状视图,里面填满了一些分层数据。Treeview 链接到一个图像列表。很简单,不是吗?
有一个这样的时刻 - 在特定操作(例如状态更改)之后 - 对于特定节点,我需要清除它的图像 - 只有文本。我尝试以下方式编写代码:
treeView1.SelectedNode.SelectedImageIndex = -1;
treeView1.SelectedNode.ImageIndex = -1;
但不起作用 - 图像仍然存在。
有什么办法吗?
好的,我自己找到了解决方案。首先-对我的问题的回答是否定的,但是有一个技巧-在表单加载时,我正在动态添加透明图像:
Bitmap mockBmp = new Bitmap(16, 16);
using (Graphics g = Graphics.FromImage(mockBmp))
g.Clear(Color.Transparent);
//add images to list
this.imageList1.Images.Add("RootNode", mockBmp);
之后,当我需要“清除”节点的图像时 - 我只需将此图像设置为该节点。
您可以通过将空白图片添加到 ImageList 来欺骗它。