TreeView节点的图像索引在选择时发生变化

Sud*_*ir 7 .net c# treeview imagelist

当我尝试在树视图中使用图像列表时,单击treenode时图像索引会发生变化.我不知道为什么会这样.谁能帮我?

提前致谢

Mat*_*kon 12

您需要在树节点上设置ImageIndex和SelectedImageIndex.


Ray*_*ega 10

'SelectedImageIndex的目的是允许在选择时显示不同于特定节点的'ImageIndex'设置的图像.为了使这两者保持一致,有必要将它们设置为相同的值.这可以在设计时完成,也可以根据您的需要以编程方式完成.

例如,如果图像永远不会改变,那么当将新节点添加到TreeView时,它就像同时设置它们一样简单:

int myCurrentImageIndex = 0;
TreeNode node = myTreeView.Nodes.Add("new node!");
node.ImageIndex = node.SelectedImageIndex = myCurrentImageIndex;
Run Code Online (Sandbox Code Playgroud)

但是,如果您在初始创建后因任何原因更改了ImageIndex值(例如对某种用户操作的响应),那么您还必须更改SelectedImageIndex.否则,它们将变得不一致.

int myNewImageIndex = 1;
node.ImageIndex = node.SelectedImageIndex = myNewImageIndex;
Run Code Online (Sandbox Code Playgroud)

(注意,在'AfterSelect'事件的事件处理程序中将它们设置为相同是不够的.必须在代码中ImageIndex更改的任何位置进行.)