C#でのTreeViewの使い方とは?基本的な使い方・チェックボックス・展開/折り畳み

- システム
エンジニア - C#でのTreeViewの使い方が知りたいです。
- プロジェクト
マネージャー - C#でのTreeViewの基本的な使い方などを紹介します。
C#でのTreeViewの使い方とは?
今回は、C#でのTreeViewの使い方について説明します。ここでは、TreeViewの基本的な使い方、チェックボックス、展開/折り畳みについて紹介します。
C#でのTreeViewの使い方に興味のある方はぜひご覧ください。
TreeViewとは?
C#のTreeViewコントロールとは、System.Windows.Forms名前空間のコントロールで、データ項目をツリー状に並べて表示できるものです。例えば、Windowsのエクスプローラなどで見られます。以降の章で、C#のTreeViewの使い方を紹介します。
基本的な使い方
C#でのTreeViewの基本的な使い方を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
using System;
using System.Windows.Forms;
using System.Drawing;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
TreeView treeView;
public Form1()
{
this.AutoSize = true;
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
treeView = new TreeView();
// 位置
treeView.Location = new Point(10, 10);
// サイズ
treeView.Width = 200;
treeView.Height = 200;
// FormにTreeViewを追加
this.Controls.Add(treeView);
// rootノード
TreeNode rootNode = new TreeNode("root node");
// childノード
TreeNode childNode1 = new TreeNode("node1");
TreeNode childNode2 = new TreeNode("node2");
TreeNode childNode3 = new TreeNode("node3");
// grandChildノード
TreeNode grandChildNode11 = new TreeNode("node1-1");
TreeNode grandChildNode12 = new TreeNode("node1-2");
TreeNode grandChildNode21 = new TreeNode("node2-1");
TreeNode grandChildNode22 = new TreeNode("node2-2");
TreeNode grandChildNode31 = new TreeNode("node3-1");
TreeNode grandChildNode32 = new TreeNode("node3-2");
// rootノードをTreeViewに追加
treeView.Nodes.Add(rootNode);
// childノードをrootノードに追加
rootNode.Nodes.Add(childNode1);
rootNode.Nodes.Add(childNode2);
rootNode.Nodes.Add(childNode3);
// grandChildノードをchildノードに追加
childNode1.Nodes.Add(grandChildNode11);
childNode1.Nodes.Add(grandChildNode12);
childNode2.Nodes.Add(grandChildNode21);
childNode2.Nodes.Add(grandChildNode22);
childNode3.Nodes.Add(grandChildNode31);
childNode3.Nodes.Add(grandChildNode32);
// 全ノードを展開
treeView.ExpandAll();
}
}
}
|
実行すると、TreeViewが表示されます。
チェックボックス
C#でのチェックボックス付きTreeViewの使い方を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
using System;
using System.Windows.Forms;
using System.Drawing;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
TreeView treeView;
public Form1()
{
this.AutoSize = true;
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
treeView = new TreeView();
// 位置
treeView.Location = new Point(10, 10);
// サイズ
treeView.Width = 200;
treeView.Height = 200;
// チェックボックス有効
treeView.CheckBoxes = true;
// チェック時のイベント
treeView.AfterCheck += TreeView_AfterCheck;
// FormにTreeViewを追加
this.Controls.Add(treeView);
// rootノード
TreeNode rootNode = new TreeNode("root node");
// childノード
TreeNode childNode1 = new TreeNode("node1");
TreeNode childNode2 = new TreeNode("node2");
TreeNode childNode3 = new TreeNode("node3");
// childNode1のチェックを有効
childNode1.Checked = true;
// grandChildノード
TreeNode grandChildNode11 = new TreeNode("node1-1");
TreeNode grandChildNode12 = new TreeNode("node1-2");
TreeNode grandChildNode21 = new TreeNode("node2-1");
TreeNode grandChildNode22 = new TreeNode("node2-2");
TreeNode grandChildNode31 = new TreeNode("node3-1");
TreeNode grandChildNode32 = new TreeNode("node3-2");
// rootノードをTreeViewに追加
treeView.Nodes.Add(rootNode);
// childノードをrootノードに追加
rootNode.Nodes.Add(childNode1);
rootNode.Nodes.Add(childNode2);
rootNode.Nodes.Add(childNode3);
// grandChildノードをchildノードに追加
childNode1.Nodes.Add(grandChildNode11);
childNode1.Nodes.Add(grandChildNode12);
childNode2.Nodes.Add(grandChildNode21);
childNode2.Nodes.Add(grandChildNode22);
childNode3.Nodes.Add(grandChildNode31);
childNode3.Nodes.Add(grandChildNode32);
// 全ノードを展開
treeView.ExpandAll();
}
private void TreeView_AfterCheck(object sender, TreeViewEventArgs e)
{
// ノードをチェック後に、配下ノードをまとめてチェック
foreach (TreeNode node in e.Node.Nodes) node.Checked = e.Node.Checked;
}
}
}
|
実行すると、チェックボックス付きのTreeViewが表示されます。このようにC#では、TreeViewにチェックボックスを付与できます。
展開/折り畳み
C#でのTreeViewの展開/折り畳みについて紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
using System;
using System.Windows.Forms;
using System.Drawing;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
TreeView treeView;
Button button1, button2;
public Form1()
{
this.AutoSize = true;
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
treeView = new TreeView();
// 位置
treeView.Location = new Point(10, 10);
// サイズ
treeView.Width = 200;
treeView.Height = 200;
// チェックボックス有効
treeView.CheckBoxes = true;
// チェック時のイベント
treeView.AfterCheck += TreeView_AfterCheck;
// FormにTreeViewを追加
this.Controls.Add(treeView);
// rootノード
TreeNode rootNode = new TreeNode("root node");
// childノード
TreeNode childNode1 = new TreeNode("node1");
TreeNode childNode2 = new TreeNode("node2");
TreeNode childNode3 = new TreeNode("node3");
// childNode1のチェックを有効
childNode1.Checked = true;
// grandChildノード
TreeNode grandChildNode11 = new TreeNode("node1-1");
TreeNode grandChildNode12 = new TreeNode("node1-2");
TreeNode grandChildNode21 = new TreeNode("node2-1");
TreeNode grandChildNode22 = new TreeNode("node2-2");
TreeNode grandChildNode31 = new TreeNode("node3-1");
TreeNode grandChildNode32 = new TreeNode("node3-2");
// rootノードをTreeViewに追加
treeView.Nodes.Add(rootNode);
// childノードをrootノードに追加
rootNode.Nodes.Add(childNode1);
rootNode.Nodes.Add(childNode2);
rootNode.Nodes.Add(childNode3);
// grandChildノードをchildノードに追加
childNode1.Nodes.Add(grandChildNode11);
childNode1.Nodes.Add(grandChildNode12);
childNode2.Nodes.Add(grandChildNode21);
childNode2.Nodes.Add(grandChildNode22);
childNode3.Nodes.Add(grandChildNode31);
childNode3.Nodes.Add(grandChildNode32);
// ExpandAllボタン
button1 = new Button();
button1.Location = new Point(10, 220);
button1.Text = "ExpandAll";
button1.Click += Button1_Click;
this.Controls.Add(button1);
// CollapseAllボタン
button2 = new Button();
button2.Location = new Point(100, 220);
button2.Text = "CollapseAll";
button2.Click += Button2_Click;
this.Controls.Add(button2);
}
private void Button1_Click(object sender, EventArgs e)
{
// 全ノードを展開
treeView.ExpandAll();
}
private void Button2_Click(object sender, EventArgs e)
{
// 全ノードを折りたたむ
treeView.CollapseAll();
}
private void TreeView_AfterCheck(object sender, TreeViewEventArgs e)
{
// ノードをチェック後に、配下ノードをまとめてチェック
foreach (TreeNode node in e.Node.Nodes) node.Checked = e.Node.Checked;
}
}
}
|
展開はExpandAll()、折り畳みはCollapseAll()です。このようにC#では、TreeViewの展開/折り畳みができます。
- システム
エンジニア - C#でのTreeViewの使い方がわかりました。
- プロジェクト
マネージャー - C#でのTreeViewについての理解を深めて、実際にコードを書いてみましょう。
まとめ
いかがでしたでしょうか。C#でのTreeViewの使い方について説明しました。ここでは、TreeViewの基本的な使い方、チェックボックス、展開/折り畳みについて紹介しました。
ぜひご自身でC#のソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


C#新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)