0

ツリービューがあり、そのノードが選択されたら、ツリービュー内のノードを強調表示(テキストの色を変更)したいと思います。これはどういうわけか私にはうまくいきません。ノードを選択しても何も起こりませんが、選択した同じノードでプラスをクリックすると...ハイライトされます...そして、子ノードのいずれかをクリックしても何も起こらず、ルートノードは常にハイライトされたままになります。誰かが私を正しい方向に向けることができますか...私はc#を使用しています。

4

1 に答える 1

0

以下は私にとってはうまくいきます。ただし、実際の選択をキャンセルすることに注意してください。そうしないと、選択のハイライトによってハイライトが隠れてしまうからです。そのため、どのノードが手動で選択されているかを追跡する必要がある場合があります。

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);
   }
}
于 2010-04-30T21:14:08.603 に答える