前々回、前回と 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; }
このコードを実行すると、このようにツールチップが表示されます。