前々回、前回と TreeViewコントロール(System.Windows.Forms名前空間)の基本的な使い方を紹介しました。
引き続き、このTreeViewコントロールの表示をいろいろ変えてみます。
デフォルト表示はこのようになっています。

ツリー内のノードにチェックボックスを表示する
TreeViewコントロールのCheckBoxesプロパティ(bool型)にtrueを設定すると、ツリーのノードにチェックボックスを表示できます。
コードは下記のようになります。
private void Form1_Load(object sender, EventArgs e)
{
// コンピュータ1の子のノードを作成
TreeNode treeNodeHDD1 = new TreeNode("ハードディスク");
TreeNode treeNodeDVD1 = new TreeNode("DVD-ROMドライブ");
// 子のノードをまとめる配列を用意
TreeNode[] treeNodeSubFolder1 = { treeNodeHDD1, treeNodeDVD1 };
// 親のノードを作成(子のノードを入れる)
TreeNode treeNodeComuter1 = new TreeNode("コンピュータ1", treeNodeSubFolder1);
// コンピュータ2の子のノードを作成
TreeNode treeNodeSSD2 = new TreeNode("ソリッドステートドライブ");
TreeNode treeNodeHDD2 = new TreeNode("外付ハードディスク");
// 子のノードをまとめる配列を用意
TreeNode[] treeNodeSubFolder2 = { treeNodeSSD2, treeNodeHDD2 };
// 親のノードを作成(子のノードを入れる)
TreeNode treeNodeComuter2 = new TreeNode("コンピュータ2", treeNodeSubFolder2);
TreeNode[] treeNodeRoot = { treeNodeComuter1, treeNodeComuter2 };
// 最上位階層に対してまとめて項目(ノード)を追加
treeView1.Nodes.AddRange(treeNodeRoot);
// 先頭のノードを展開する
treeView1.TopNode.Expand();
// チェックボックスを表示する
treeView1.CheckBoxes = true;
}
このコードを実行すると、下記のように表示されます。

ツリーのルートにあるプラスマイナスの表示を切り替える
TreeViewコントロールのShowPlusMinusプロパティ(bool型)にfalseを設定すると、ツリーのルートにあるプラスマイナスを非表示にできます。
コードは下記のようになります。
private void Form1_Load(object sender, EventArgs e)
{
// コンピュータ1の子のノードを作成
TreeNode treeNodeHDD1 = new TreeNode("ハードディスク");
TreeNode treeNodeDVD1 = new TreeNode("DVD-ROMドライブ");
// 子のノードをまとめる配列を用意
TreeNode[] treeNodeSubFolder1 = { treeNodeHDD1, treeNodeDVD1 };
// 親のノードを作成(子のノードを入れる)
TreeNode treeNodeComuter1 = new TreeNode("コンピュータ1", treeNodeSubFolder1);
// コンピュータ2の子のノードを作成
TreeNode treeNodeSSD2 = new TreeNode("ソリッドステートドライブ");
TreeNode treeNodeHDD2 = new TreeNode("外付ハードディスク");
// 子のノードをまとめる配列を用意
TreeNode[] treeNodeSubFolder2 = { treeNodeSSD2, treeNodeHDD2 };
// 親のノードを作成(子のノードを入れる)
TreeNode treeNodeComuter2 = new TreeNode("コンピュータ2", treeNodeSubFolder2);
TreeNode[] treeNodeRoot = { treeNodeComuter1, treeNodeComuter2 };
// 最上位階層に対してまとめて項目(ノード)を追加
treeView1.Nodes.AddRange(treeNodeRoot);
// 先頭のノードを展開する
treeView1.TopNode.Expand();
// ツリーのルートにあるプラスマイナスを表示する
treeView1.ShowPlusMinus = false;
}
このコードを実行すると、このように表示されます。

プラスマイナスを非表示にすると、ノードの展開方法が分かりづらいですが、ルート(子のノードがある)ノードの場合はマウスのダブルクリックで展開ができます。
ノードにツールチップを表示する
各ノードのクラスであるTreeNodeクラスには、ToolTipTextプロパティがあり、文字列を設定することができます。
ただ、このTreeNode.ToolTipTextプロパティに文字列を設定するだけでツールチップが表示される訳ではありません。
ツールチップの文字列をセットしたうえで、TreeViewコントロールにあるShowNodeToolTipsプロパティ(bool型)をtrueにセットしないと、ツールチップは表示されません(デフォルト値はfalseです)。
コードは下記のようになります。
private void Form1_Load(object sender, EventArgs e)
{
// コンピュータ1の子のノードを作成
TreeNode treeNodeHDD1 = new TreeNode("ハードディスク");
treeNodeHDD1.ToolTipText = treeNodeHDD1.Text;
TreeNode treeNodeDVD1 = new TreeNode("DVD-ROMドライブ");
treeNodeDVD1.ToolTipText = treeNodeDVD1.Text;
// 子のノードをまとめる配列を用意
TreeNode[] treeNodeSubFolder1 = { treeNodeHDD1, treeNodeDVD1 };
// 親のノードを作成(子のノードを入れる)
TreeNode treeNodeComuter1 = new TreeNode("コンピュータ1", treeNodeSubFolder1);
// コンピュータ2の子のノードを作成
TreeNode treeNodeSSD2 = new TreeNode("ソリッドステートドライブ");
treeNodeSSD2.ToolTipText = treeNodeSSD2.Text;
TreeNode treeNodeHDD2 = new TreeNode("外付ハードディスク");
treeNodeHDD2.ToolTipText = treeNodeHDD2.Text;
// 子のノードをまとめる配列を用意
TreeNode[] treeNodeSubFolder2 = { treeNodeSSD2, treeNodeHDD2 };
// 親のノードを作成(子のノードを入れる)
TreeNode treeNodeComuter2 = new TreeNode("コンピュータ2", treeNodeSubFolder2);
TreeNode[] treeNodeRoot = { treeNodeComuter1, treeNodeComuter2 };
// 最上位階層に対してまとめて項目(ノード)を追加
treeView1.Nodes.AddRange(treeNodeRoot);
// 先頭のノードを展開する
treeView1.TopNode.Expand();
// ノードのツールチップテキスト表示を切り替える
treeView1.ShowNodeToolTips = true;
}
このコードを実行すると、このようにツールチップが表示されます。


