【问题标题】:Setting TreeView ForeColor using C#使用 C# 设置 TreeView 前景色
【发布时间】:2010-11-11 15:16:22
【问题描述】:

我有一个树视图,当用户与单个节点交互时,颜色会发生变化。代码是:

treeview.selectednode.forecolor = color.red;

例如,当用户按下按钮时,我希望整个节点集变为黑色。所以我这样编码:

treeview.forecolor = color.black;

它工作正常,除了我之前更改为红色的节点。有没有办法解决这个问题?

【问题讨论】:

  • 真的可以编译吗?该属性的名称是 ForeColor,而不是 forecolor。此外,它应该是 Color.Black,而不是 color.black

标签: c# winforms treeview


【解决方案1】:

使用这个递归函数:

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    (sender as TreeView).SelectedNode.ForeColor = Color.Red;
}

private void button1_Click(object sender, EventArgs e)
{
    foreach (TreeNode tn in treeView1.Nodes)
    {
        tn.ForeColor = Color.Blue;
        ColorNodes(tn);
    }
}

private void ColorNodes(TreeNode t)
{
    foreach (TreeNode tn in t.Nodes)
    {
        tn.ForeColor = Color.Blue;
        ColorNodes(tn);
    }
}

【讨论】:

  • 谢谢 - 确实想到了,但如果我有一个包含数百或数千个节点的 Treeview,这个扩展效率如何?再次感谢。
  • 我想我会这样做,但是是异步的。
【解决方案2】:

保留对先前选择的节点的引用,每当您将树视图更改为黑色时,将其变为黑色。

【讨论】:

  • 不能这样做.....有些情况下树视图加载了红色节点。还是谢谢。
猜你喜欢
  • 2011-03-06
  • 2016-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
相关资源
最近更新 更多