使用 PopulateOndemand 时,Treeview 节点不会突出显示

发布于 2024-08-31 05:51:38 字数 172 浏览 3 评论 0原文

我有一个树视图,一旦选择了树视图中的节点,我想突出显示该节点(更改文本颜色)。由于某种原因,这对我不起作用。当我选择一个节点时,什么也没有发生,但是当我单击我刚刚选择的同一节点上的加号时...它会突出显示...即使这样,当我单击任何子节点时,也没有任何反应,并且根节点始终保持突出显示。谁能指出我正确的方向...我正在使用 c#。

I have a treeview and I want to highlight (change the text color) of a node in the treeview once that node has been selected. This isnt working for me for some reason. when I select a node nothing happens, but when I click the plus on the same node I just selected...it highlights...and even then when I click any of the childnodes, nothing happens and the root node stays highlighted always. Can anyone point me in the right direction...I'm using c#.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧城空念 2024-09-07 05:51:38

以下内容对我有用。请注意,我取消了实际的选择,否则选择突出显示将隐藏我的突出显示。因此,您可能必须手动跟踪选择的节点。

private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
   Dehighlight(treeView1.Nodes);
   e.Node.ForeColor = Color.Red;
   e.Cancel = true;
}

private void Dehighlight(TreeNodeCollection nodes)
{
   foreach (TreeNode node in nodes)
   {
      node.BackColor = Color.White;
      node.ForeColor = Color.Black;
      Dehighlight(node.Nodes);
   }
}

The following works for me. Please note that I cancel the actual selection though, since otherwise the selection highlight would hide my highlightning. So you might have to keep track of which node is selected manually.

private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
   Dehighlight(treeView1.Nodes);
   e.Node.ForeColor = Color.Red;
   e.Cancel = true;
}

private void Dehighlight(TreeNodeCollection nodes)
{
   foreach (TreeNode node in nodes)
   {
      node.BackColor = Color.White;
      node.ForeColor = Color.Black;
      Dehighlight(node.Nodes);
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文