【问题标题】:TreeView selected node problemTreeView 选中节点问题
【发布时间】:2010-12-07 08:20:09
【问题描述】:

我想创建一个自定义树视图,所以我继承了树视图类并创建了“CustomTreeView”类

我实现了多选概念..

用于选择节点,

node.BackColor = SystemColors.Highlight;
node.ForeColor = SystemColors.HighlightText;

我用了这些线...

但问题是当我将控件设置为禁用时(即启用=false),

所选节点不可见..

选择节点的任何其他解决方案???没有这个启用的问题?


编辑:这是选择节点时调用的完整函数:

private void ToggleNode(TreeNode node, bool bSelectNode)
{
   if (bSelectNode)
   {
      m_SelectedNode = node;

      if (!m_SelectedNodes.Contains(node))
         m_SelectedNodes.Add(node);

      node.BackColor = SystemColors.Highlight;
      node.ForeColor = SystemColors.HighlightText;
   }
   else
   {
      m_SelectedNodes.Remove(node);
      node.BackColor = this.BackColor;
      node.ForeColor = this.ForeColor;
   }
}

【问题讨论】:

  • 你能告诉我们一些你的代码吗?从我理解您的描述的方式来看,我无法重现此问题。禁用的 TreeView 控件仍然尊重为单个节点设置的自定义 BackColorForeColor 属性。
  • private void ToggleNode(TreeNode node, bool bSelectNode) { if (bSelectNode) { m_SelectedNode = node; if (!m_SelectedNodes.Contains(node)) m_SelectedNodes.Add(node); node.BackColor = SystemColors.Highlight; node.ForeColor = SystemColors.HighlightText; } else { m_SelectedNodes.Remove(node); node.BackColor = this.BackColor; node.ForeColor = this.ForeColor; } }
  • 节点被选中时会调用is函数
  • 并且当禁用了这个customtreeview的应用程序时..节点的文本变得不可见
  • 您是否为您的TreeView 指定了自定义BackColor 和/或ForeColor?这些可能与导致它们看起来不可见的突出显示颜色足够相似。对于我的TreeView 使用标准的白色BackColor 和黑色ForeColor,结合我系统的绿色Highlight 和白色HighlightText 颜色,我无法重现此行为。

标签: c# .net winforms treeview


【解决方案1】:

我怀疑这是因为 Highlight 和 HighlightText 靠得足够近,您可以通过调光获得这种效果。

试试红色和蓝色。它还会消失吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多