作成日: 2022/12/21 最終更新日: 2022/12/21
文書種別
使用方法
詳細
C1TreeViewはグリッドコントロールとは異なり、1つのノードに1つの値が含まれ、この値は連結モードでDataRowやデータオブジェクトに対して機能します。非連結モードでは、SetValueを使用してノードに値を設定すると、それはすべての複数列に表示されます。
非連結モードで複数列を使用したとき、各列に異なる値を表示させるには、それぞれの列に対応するプロパティを持つクラスを作成して、これをデータオブジェクトとして使用します。そのうえで、各列のDisplayFieldNameにこのプロパティ名を指定して、プロパティの設定値を表示させる手順を踏む必要があります。
以下に簡単な設定例を記載します。

※なお、複数列に設定した値を変更するために、以下のようなコードを使用できます。
【VB】parentNode1.SetValue("新しい値", 2)
【C#】parentNode1.SetValue("新しい値", 2);
◎サンプルコード(VB)
非連結モードで複数列を使用したとき、各列に異なる値を表示させるには、それぞれの列に対応するプロパティを持つクラスを作成して、これをデータオブジェクトとして使用します。そのうえで、各列のDisplayFieldNameにこのプロパティ名を指定して、プロパティの設定値を表示させる手順を踏む必要があります。
以下に簡単な設定例を記載します。
※なお、複数列に設定した値を変更するために、以下のようなコードを使用できます。
【VB】parentNode1.SetValue("新しい値", 2)
【C#】parentNode1.SetValue("新しい値", 2);
◎サンプルコード(VB)
Imports C1.Win.TreeView
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 列の設定
' 1列目
C1TreeView1.Columns.Clear()
Dim Column1 As C1TreeColumn = New C1TreeColumn()
Column1.HeaderText = "列1"
Column1.Name = "Column1"
Column1.DisplayFieldName = "TestProp1"
C1TreeView1.Columns.Add(Column1)
' 2列目
Dim Column2 As C1TreeColumn = New C1TreeColumn()
Column2.HeaderText = "列2"
Column2.Name = "Column2"
Column2.DisplayFieldName = "TestProp2"
C1TreeView1.Columns.Add(Column2)
' 3列目
Dim Column3 As C1TreeColumn = New C1TreeColumn()
Column3.HeaderText = "列3"
Column3.Name = "Column3"
Column3.DisplayFieldName = "TestProp3"
C1TreeView1.Columns.Add(Column3)
' 各レベルに使用するクラスの作成
Dim t01 = New Test1 With {
.TestProp1 = "あ1列",
.TestProp2 = "あ2列",
.TestProp3 = "あ3列"
}
Dim t11 = New Test1 With {
.TestProp1 = "AAAA01",
.TestProp2 = "AAAA02",
.TestProp3 = "AAAA03"
}
Dim t02 = New Test1 With {
.TestProp1 = "い1列",
.TestProp2 = "い2列",
.TestProp3 = "い3列"
}
Dim t12 = New Test1 With {
.TestProp1 = "BBBB01",
.TestProp2 = "BBBB02",
.TestProp3 = "BBBB03"
}
' ツリーの作成
' レベル0:親ノードの追加
Dim parentNode1 = C1TreeView1.Nodes.Add(t01)
Dim parentNode2 = C1TreeView1.Nodes.Add(t02)
' レベル1: 子ノードの追加
parentNode1.Nodes.Add(t11)
parentNode2.Nodes.Add(t12)
' ノードの値の変更
parentNode1.SetValue("新しい値", 2)
' ツリーをすべて展開して表示
C1TreeView1.ExpandAll()
End Sub
End Class
Public Class Test1
Public Property TestProp1 As String
Public Property TestProp2 As String
Public Property TestProp3 As String
End Class
◎サンプルコード(C#)
using C1.Win.TreeView;
namespace prj_C1TreeView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//列の設定
//1列目
c1TreeView1.Columns.Clear();
C1TreeColumn Column1 = new C1TreeColumn();
Column1.HeaderText = "列1";
Column1.Name = "Column1";
Column1.DisplayFieldName = "TestProp1";
c1TreeView1.Columns.Add(Column1);
//2列目
C1TreeColumn Column2 = new C1TreeColumn();
Column2.HeaderText = "列2";
Column2.Name = "Column2";
Column2.DisplayFieldName = "TestProp2";
c1TreeView1.Columns.Add(Column2);
//3列目
C1TreeColumn Column3 = new C1TreeColumn();
Column3.HeaderText = "列3";
Column3.Name = "Column3";
Column3.DisplayFieldName = "TestProp3";
c1TreeView1.Columns.Add(Column3);
// 各レベルに使用するクラスの作成
var t01 = new Test1
{
TestProp1 = "あ1列",
TestProp2 = "あ2列",
TestProp3 = "あ3列",
};
var t11 = new Test1
{
TestProp1 = "AAAA01",
TestProp2 = "AAAA02",
TestProp3 = "AAAA03",
};
var t02 = new Test1
{
TestProp1 = "い1列",
TestProp2 = "い2列",
TestProp3 = "い3列",
};
var t12 = new Test1
{
TestProp1 = "BBBB01",
TestProp2 = "BBBB02",
TestProp3 = "BBBB03",
};
// ツリーの作成
// レベル0: 親ノードの追加
var parentNode1 = c1TreeView1.Nodes.Add(t01);
var parentNode2 = c1TreeView1.Nodes.Add(t02);
// レベル1: 子ノードの追加
parentNode1.Nodes.Add(t11);
parentNode2.Nodes.Add(t12);
// ノードの値の変更
parentNode1.SetValue("新しい値", 2); //1行3列目
// ツリーをすべて展開して表示
c1TreeView1.ExpandAll();
}
}
}
public class Test1
{
public string TestProp1 { get; set; }
public string TestProp2 { get; set; }
public string TestProp3 { get; set; }
}