【C#】チェックボックス付きツリービューでチェックされたノードを表示するサンプル

C#

この記事では、チェックボックス付きツリービューでチェックされたノードを表示するサンプルコードを掲載します。

準備

フォームにコントロールを配置してください。

・ツリービュー(treeView1)
・ボタン1つ(btnShow)

サンプルコード

ボタンのイベントハンドラを作成して下記処理を転記してください。
各処理の説明はコメントを参照ください。

using System;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // ツリービューの初期化(GUI上で設定する場合、このメソッド呼び出しは不要)
            InitializeTreeView();
        }

        // ツリービューの初期化(GUI上で設定する場合、このメソッドは不要)
        private void InitializeTreeView()
        {
            // TreeViewのチェックボックスを有効にする
            treeView1.CheckBoxes = true;

            // 最上位ノードを2つ追加
            TreeNode rootNode1 = treeView1.Nodes.Add("Root Node 1");
            TreeNode rootNode2 = treeView1.Nodes.Add("Root Node 2");

            // 最上位ノードにそれぞれ子ノードを2つ追加
            rootNode1.Nodes.Add("Child Node 1");
            rootNode1.Nodes.Add("Child Node 2");
            rootNode2.Nodes.Add("Child Node 3");
            rootNode2.Nodes.Add("Child Node 4");

            // ノードの展開
            treeView1.ExpandAll();
        }

        private void btnShow_Click(object sender, EventArgs e)
        {
            // チェックされたノードをメッセージボックスで表示するメソッドを呼び出す
            ShowCheckedNodes(treeView1.Nodes);
        }

        // チェックされたノードをメッセージボックスで表示
        private void ShowCheckedNodes(TreeNodeCollection nodes)
        {
            foreach (TreeNode node in nodes)
            {
                // ノードがチェックされていたらメッセージボックス表示
                if (node.Checked)
                {
                    MessageBox.Show(node.Text);
                }

                // 子ノードがあれば再帰的に処理
                ShowCheckedNodes(node.Nodes);
            }
        }

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