作成日: 2022/05/20 最終更新日: 2022/05/20
文書種別
使用方法
詳細
C1TreeViewには、ノード行の全体のスタイルを設定するためにApplyNodeStylesイベントが用意されています。
このイベント引数のe.Node.GetValueを用いてノードを指定し、e.NodeStyles.Default.ForeColor/BackColorプロパティを用いて、指定したノードの行全体の前景色、背景色を変更することができます。
以下に、各ルートノードを異なる色に設定するサンプルコードを記載します。

◎サンプルコード(VB)
このイベント引数のe.Node.GetValueを用いてノードを指定し、e.NodeStyles.Default.ForeColor/BackColorプロパティを用いて、指定したノードの行全体の前景色、背景色を変更することができます。
以下に、各ルートノードを異なる色に設定するサンプルコードを記載します。

◎サンプルコード(VB)
Imports C1.Win.TreeView
Public Class Form1
Dim nudColumnsCount As Integer = 3 '列数
Dim nudRootNodesCount As Integer = 2 'ルートのノード数
Dim nudNodesCount As Integer = 4 '子のノード数
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' ツリーの作成
C1TreeView1.Columns.Clear()
C1TreeView1.Nodes.Clear()
Dim i As Integer
For i = 0 To nudColumnsCount - 1
Dim column As C1TreeColumn = New C1TreeColumn()
column.HeaderText = String.Format("Column {0}", i)
column.AutoWidth = False
column.Width = 200
C1TreeView1.Columns.Add(column)
Next
For i = 0 To nudRootNodesCount - 1
Dim node As C1TreeNode = New C1TreeNode(String.Format("Node 0.{0}", i))
C1TreeView1.Nodes.Add(node)
GenerateChildNodes(node)
node.Collapse(True)
Next
End Sub
Private Sub GenerateChildNodes(ByVal parentNode As C1TreeNode)
If Not parentNode.HasChildren Then
For i = 0 To nudNodesCount - 1
Dim node = New C1TreeNode(String.Format("Node {0}.{1}.{2}", parentNode.Level + 1, parentNode.ParentCollection.IndexOf(parentNode), i))
parentNode.Nodes.Add(node)
Next
End If
End Sub
Private Sub C1TreeView1_ApplyNodeStyles(sender As Object, e As C1TreeViewNodeStylesEventArgs) Handles C1TreeView1.ApplyNodeStyles
' ノードの行全体のスタイルを変更
If (e.Node.GetValue().ToString() = "Node 0.0") Then
e.NodeStyles.Default.ForeColor = Color.Yellow
e.NodeStyles.Default.BackColor = Color.DarkGreen
ElseIf e.Node.GetValue().ToString() = "Node 0.1" Then
e.NodeStyles.Default.ForeColor = Color.White
e.NodeStyles.Default.BackColor = Color.DarkBlue
End If
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.TreeView;
namespace prj_C1TreeView
{
public partial class Form1 : Form
{
int nudColumnsCount = 3; //列数
int nudRootNodesCount = 2; //ルートのノード数
int nudNodesCount = 4; //子のノード数
public Form1()
{
InitializeComponent();
GenerateTreeView();
}
// ツリーの作成
private void GenerateTreeView()
{
c1TreeView1.Columns.Clear();
c1TreeView1.Nodes.Clear();
for (var i = 0; i < nudColumnsCount; i++)
{
var column = new C1TreeColumn();
column.HeaderText = string.Format("Column {0}", i);
column.AutoWidth = false;
column.Width = 200;
c1TreeView1.Columns.Add(column);
}
for (var i = 0; i < nudRootNodesCount; i++)
{
var node = new C1TreeNode(string.Format("Node 0.{0}", i));
c1TreeView1.Nodes.Add(node);
GenerateChildNodes(node);
node.Collapse(true);
}
}
private void GenerateChildNodes(C1TreeNode parentNode)
{
if (!parentNode.HasChildren)
{
for (var i = 0; i < nudNodesCount; i++)
{
var node = new C1TreeNode(string.Format("Node {0}.{1}.{2}", parentNode.Level + 1, parentNode.ParentCollection.IndexOf(parentNode), i));
parentNode.Nodes.Add(node);
}
}
}
private void c1TreeView1_ApplyNodeStyles(object sender, C1TreeViewNodeStylesEventArgs e)
{
// ノードの行全体のスタイルを変更
if (e.Node.GetValue().ToString() == "Node 0.0")
{
e.NodeStyles.Default.ForeColor = Color.Yellow;
e.NodeStyles.Default.BackColor = Color.DarkGreen;
}
else if (e.Node.GetValue().ToString() == "Node 0.1")
{
e.NodeStyles.Default.ForeColor = Color.White;
e.NodeStyles.Default.BackColor = Color.DarkBlue;
}
}
}
}