【C#】TreeViewって何よ
今回は、5ちゃんねるビューアーで使用したTreeViewについて書いていきたいと思います。
TreeViewは以下のようにTreeNodeをツリー状に表示することができるコントロールです。
「treeView1.CheckBoxes = true;」にすることにより、Node全てにチェックボックスをつけることができます。
TreeViewの「AfterCheck」でチェックボックスが変更された時、「AfterSelect」でノードが選択された時のイベントを取得できます。
private void Form1_Load(object sender, EventArgs e) { treeView1.CheckBoxes = true; TreeNode node0 = new TreeNode("ルート"); TreeNode node1 = new TreeNode("子ノード1"); TreeNode node2 = new TreeNode("子ノード2"); TreeNode node3 = new TreeNode("孫ノード1"); TreeNode node4 = new TreeNode("孫ノード2"); TreeNode node5 = new TreeNode("孫ノード3"); node0.Nodes.AddRange(new[] { node1, node2 }); node1.Nodes.AddRange(new[] { node3, node4 }); node2.Nodes.Add(node5); treeView1.Nodes.Add(node0); treeView1.ExpandAll(); } private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { Console.WriteLine(e.Node.Text + "のチェックが変更されました。"); } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { Console.WriteLine(e.Node.Text + "が選択されました。"); }
任意のノードの頭にイメージを表示する
ImageListの追加
- ImageListへの画像の追加
- TreeViewへImageListを登録する
- コードを記述する
以下のように任意のノードにImageIndexとSelectedImageIndexを指定してやることでアイコンを表示する事ができる。
ちなみにImageIndexとは選択されていない状態のアイコンのIndexで、SelectedImageIndexは選択されている状態でのそれである。
private void Form1_Load(object sender, EventArgs e) { TreeNode node0 = new TreeNode("ルート", 1, 1); TreeNode node1 = new TreeNode("子ノード1", 1, 1); TreeNode node2 = new TreeNode("子ノード2", 1, 1); TreeNode node3 = new TreeNode("孫ノード1"); TreeNode node4 = new TreeNode("孫ノード2"); TreeNode node5 = new TreeNode("孫ノード3"); node0.Nodes.AddRange(new[] { node1, node2 }); node1.Nodes.AddRange(new[] { node3, node4 }); node2.Nodes.Add(node5); treeView1.Nodes.Add(node0); treeView1.ExpandAll(); }