0
ユーザーがノードを選択すると、選択された選択されたノードからTreeView内の最上位の親になるように、TreeViewコントロールでノードの背景色を変更します。 。c#TreeViewでSelectNodeの背景を変更する
ユーザーがノードを選択すると、選択された選択されたノードからTreeView内の最上位の親になるように、TreeViewコントロールでノードの背景色を変更します。 。c#TreeViewでSelectNodeの背景を変更する
自分のイメージを1として、私はあなたがWindowsフォームを使用していると仮定します:
は、ここで私は後にしています何の視覚的な例です。だから、これはあなたがツリービューでフォームを有する所望の機能を実現するために必要なコードは、このサンプル中のTreeView1と呼ばれる:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private readonly Color selectedColor = Color.Red;
private readonly Color normalColor = Color.Transparent;
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action != TreeViewAction.ByKeyboard &&
e.Action != TreeViewAction.ByMouse)
return;
ResetAllNodes(treeView1.Nodes.Cast<TreeNode>());
ChangeBackground(e.Node);
}
private void ResetAllNodes(IEnumerable<TreeNode> nodes)
{
var treeNodes = nodes as TreeNode[] ?? nodes.ToArray();
if (!treeNodes.Any())
return;
foreach (var node in treeNodes)
{
node.BackColor = normalColor;
ResetAllNodes(node.Nodes.Cast<TreeNode>());
}
}
private void ChangeBackground(TreeNode node)
{
node.BackColor = selectedColor;
if (node.Parent == null)
return;
ChangeBackground(node.Parent);
}
}
・ホープ、このことができます!