C#

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

前回、TreeViewコントロール(System.Windows.Forms名前空間)の基本的な使い方を紹介しました。
今回は、このTreeViewコントロールの表示をいろいろ変えてみます。

 

まずはデフォルト表示

TreeViewコントロールで、ノードを追加しただけで表示すると下記のような表示になります。

 

 

コードは下記のようになります。

 

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();
}

 

ツリーの線を非表示にする

TreeViewコントロールのShowLinesプロパティ(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.ShowLines = false;
}

 

このコードを実行すると、下記のように表示されます。

 

 

ツリーの線の色を変える

TreeViewコントロールのLineColorプロパティ(System.Drawing.Color型)に任意の色を設定すると、ツリーの階層を繋ぐ線の色が変更されます。

コードは下記のようになります。

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.LineColor = Color.Red;
}

 

このコードを実行すると、下記のように表示されます。

 

 

わかりづらいかもしれませんが、ノードを繋ぐ線の色が赤になっています。

 

ツリーのルートの線の表示/非表示を切り替える

TreeViewコントロールのShowRootLinesプロパティ(bool型)に任意の色を設定すると、ツリーのルートを繋ぐ線の表示/非表示が切り替わります。

コードは下記のようになります。

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.ShowRootLines = false;
}

 

このコードを実行すると、下記のように表示されます。

 

 

デフォルトの表示などと比べるとわかりますが、全体的にノードの表示位置が左に寄るので、ノードの表示位置の変化などに注意して使ってください。

 

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