当我尝试在树视图中使用图像列表时,单击treenode时图像索引会发生变化。我不知道为什么会这样。任何人都可以帮助我吗?
提前致谢
答案 0 :(得分:12)
您需要在树节点上设置ImageIndex和SelectedImageIndex。
答案 1 :(得分:10)
'SelectedImageIndex的目的是允许在选择时显示与特定节点的'ImageIndex'设置的图像不同的图像。为了使这两者保持一致,有必要将它们设置为相同的值。这可以在设计时或根据您的需要以编程方式完成。
例如,如果图像永远不会改变,那么就像在将新节点添加到TreeView时同时设置它们一样简单:
int myCurrentImageIndex = 0;
TreeNode node = myTreeView.Nodes.Add("new node!");
node.ImageIndex = node.SelectedImageIndex = myCurrentImageIndex;
但是,如果您在初始创建后因任何原因更改了ImageIndex值(例如对某种用户操作的响应),那么您还必须更改SelectedImageIndex。否则,它们将变得不一致。
int myNewImageIndex = 1;
node.ImageIndex = node.SelectedImageIndex = myNewImageIndex;
(注意,在'AfterSelect'事件的事件处理程序中将它们设置为相同是不够的。必须在代码中ImageIndex更改的任何位置进行。)
答案 2 :(得分:1)
你可以直接在构造函数中执行:
TreeNode node = new TreeNode("My treenode", 1, 1);
答案 3 :(得分:0)
TreeNode tn = new TreeNode();
tn.Text = "NewRecord";
tn.ImageIndex = 1;
treeView.SelectedNode.Nodes.Add(tn);
treeView.SelectedNode = tn;
treeView.SelectedNode.SelectedImageIndex = tn.ImageIndex; // <--- Problem solved
tn.BeginEdit();
答案 4 :(得分:0)
只需添加以下行:
Node.SelectedIndex:=Node.ImageIndex;