TreeView for WinFormsの特徴[2]
列ヘッダーの非表示
列ヘッダーの表示・非表示を切り替えることができます。
列ヘッダーの表示・非表示を切り替えるにはShowColumnHeadersプロパティにtrue(表示)またはfalse(非表示)を指定します。
ノードのドラッグ&ドロップ
各ノードのドラッグ&ドロップもプロパティの変更で実現できます。
C1TreeViewのAllowDropとEnableDragDropをtrueに設定します。
データ連結
配列やコレクションデータを利用して、ノードを生成することができます。
例えば、以下のような学校のクラスを表すクラスがあったとします。
public class Class
{
// クラス名
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}
}
1組、2組といったクラスをコレクションで表現し、C1TreeViewにデータ連結します。
List<Class> classList = new List<Class>();
classList.Add(new Class() { name = "1組"});
classList.Add(new Class() { name = "2組" });
classList.Add(new Class() { name = "3組" });
// データソースとしてclassListを指定する
c1TreeView1.DataSource = classList;
// フィールド名にnameプロパティを使用する
c1TreeView1.Columns[0].DisplayFieldName = "name";
プログラムを実行すると以下のようにノードが表示されます。
階層化データの連結
先ほどのクラス名を表示したノードの下に、生徒名を表示させる階層構造を持ったデータを連結することもできます。
クラスと生徒は以下のように定義されています。
public class Class
{
// クラス名
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}
private BindingList<Student> _studentList;
public BindingList<Student> studentList
{
get { return _studentList; }
set { _studentList = value; }
}
}
public class Student
{
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}
public override string ToString()
{
return name;
}
}
C1TreeViewに連結するコードは以下です。
List<Class> classList = new List<Class>();
// クラスとクラスに所属する生徒のコレクションを作成する
Class class1 = new Class() { name = "1組" };
class1.studentList = new BindingList<Student>();
class1.studentList.Add(new Student() { name = "山田" });
class1.studentList.Add(new Student() { name = "田中" });
classList.Add(class1);
Class class2 = new Class() { name = "2組" };
class2.studentList = new BindingList<Student>();
class2.studentList.Add(new Student() { name = "西村" });
classList.Add(class2);
classList.Add(new Class() { name = "3組" });
// データソースとしてclassListを指定する
c1TreeView1.DataSource = classList;
// フィールド名にnameプロパティを使用する
c1TreeView1.Columns[0].DisplayFieldName = "name";
// データメンバーにstudentListを指定
c1TreeView1.DataMember = "\\studentList";

