[Tips][TreeView] 選択時/非選択時のイメージを設定する

TreeViewコントロールでは、選択時と非選択時のイメージを設定することができます。

イメージはImageListコントロールににあらかじめ設定しておき、TreeViewコントロールのImageListプロパティにセットします。

ルートノードの非選択時のイメージはTreeVewクラスのインスタンスのImageIndexプロパティに、選択時のイメージはSelectdImageIndexプロパティに設定します。

子ノードにも個々にイメージを設定することができ、非選択時のイメージはTreeNodeクラスのインスタンスのImageIndexプロパティに、選択時のイメージはSelectdImageIndexプロパティに設定します。

下記は、選択時/非選択時のイメージを設定する例です。

選択時、ルートノードでは丸い形のイメージが、子ノードでは矢印のイメージが表示されます。

VBの例

' フォームロード時の処理
Private Sub Form11_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    '★★★作成したイメージリストをツリービューに関連づけ★★★
    TreeView1.ImageList = ImageList1

    '親ノード
    Dim rootNode As New TreeNode("ルート")

    '子ノード
    Dim childNode1 As New TreeNode("子ノード1")
    Dim childNode2 As New TreeNode("子ノード2")

    '孫ノード
    Dim grandChildNode1 As New TreeNode("孫ノード1")
    Dim grandChildNode2 As New TreeNode("孫ノード2")
    Dim grandChildNode3 As New TreeNode("孫ノード3")

    '親ノードをTreeViewに追加
    TreeView1.Nodes.Add(rootNode)

    '子ノードを親ノードに追加
    rootNode.Nodes.Add(childNode1)
    rootNode.Nodes.Add(childNode2)

    '孫ノードを子ノードに追加
    childNode2.Nodes.Add(grandChildNode3)
    childNode1.Nodes.Add(grandChildNode1)
    childNode1.Nodes.Add(grandChildNode2)

    '★★★ルートノードの選択時/非選択時のイメージ設定★★★
    TreeView1.ImageIndex = 0
    TreeView1.SelectedImageIndex = 1

    '★★★子ノードの選択時/非選択時のイメージ設定★★★
    childNode1.ImageIndex = 2
    childNode1.SelectedImageIndex = 3
    childNode2.ImageIndex = 2
    childNode2.SelectedImageIndex = 3

    '★★★孫ノードの選択時/非選択時のイメージ設定★★★
    grandChildNode1.ImageIndex = 2
    grandChildNode1.SelectedImageIndex = 3
    grandChildNode2.ImageIndex = 2
    grandChildNode2.SelectedImageIndex = 3
    grandChildNode3.ImageIndex = 2
    grandChildNode3.SelectedImageIndex = 3

    '全ノードを展開する
    TreeView1.ExpandAll()
End Sub

C#の例

// フォームロード時の処理
private void Form11_Load(object sender, EventArgs e)
{
    //★★★作成したイメージリストをツリービューに関連づけ★★★
    treeView1.ImageList = imageList1;

    //親ノード
    TreeNode rootNode = new TreeNode("ルート");
    //子ノード
    TreeNode childNode1 = new TreeNode("子ノード1");
    TreeNode childNode2 = new TreeNode("子ノード2");
    //孫ノード
    TreeNode grandChildNode1 = new TreeNode("孫ノード1");
    TreeNode grandChildNode2 = new TreeNode("孫ノード2");
    TreeNode grandChildNode3 = new TreeNode("孫ノード3");

    // 親ノードをTreeViewに追加
    treeView1.Nodes.Add(rootNode);

    // 子ノードを親ノードに追加
    rootNode.Nodes.Add(childNode1);
    rootNode.Nodes.Add(childNode2);

    // 孫ノードを子ノードに追加
    childNode2.Nodes.Add(grandChildNode3);
    childNode1.Nodes.Add(grandChildNode1);
    childNode1.Nodes.Add(grandChildNode2);

    // ★★★ルートノードの選択時/非選択時のイメージ設定★★★
    treeView1.ImageIndex = 0;
    treeView1.SelectedImageIndex = 1;

    // ★★★子ノードの選択時/非選択時のイメージ設定★★★
    childNode1.ImageIndex = 2;
    childNode1.SelectedImageIndex = 3;
    childNode2.ImageIndex = 2;
    childNode2.SelectedImageIndex = 3;

    // ★★★孫ノードの選択時/非選択時のイメージ設定★★★
    grandChildNode1.ImageIndex = 2;
    grandChildNode1.SelectedImageIndex = 3;
    grandChildNode2.ImageIndex = 2;
    grandChildNode2.SelectedImageIndex = 3;
    grandChildNode3.ImageIndex = 2;
    grandChildNode3.SelectedImageIndex = 3;

    // 全ノードを展開する
    treeView1.ExpandAll();
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です