C#

C# TreeViewコントロールの使い方(3/3)

前々回前回と 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;
}

 

このコードを実行すると、このようにツールチップが表示されます。

 

タイトルとURLをコピーしました