[C#][Windows Formsアプリ][CheckedListBox] SelectedIndexChangeイベントで選択項目の変更を検知する方法

スポンサーリンク

はじめに

Windows Formsアプリケーション開発において、ユーザーがリストから項目を選択した際に、その選択に応じて他のコントロールの表示を更新したり、関連する処理を実行したりすることはよくあります。CheckedListBoxコントロールのSelectedIndexChangedイベントは、選択されている項目が変更された時に発生するイベントであり、このイベントを利用することで、選択項目に応じて柔軟な連動処理を実現できます。この記事では、SelectedIndexChangedイベントの概要と、その活用方法について、業務シナリオを交えながら解説します。

SelectedIndexChangedイベントの概要

SelectedIndexChangedイベントは、CheckedListBoxコントロールで現在選択されている項目が変更されたときに発生します。このイベントは、ユーザーがリスト内の項目をクリックして選択を変更した場合、またはプログラム的に選択項目が変更された場合に発生します。SelectedIndexChangedイベントのイベントハンドラでは、EventArgs型の引数を受け取ります。この引数には、選択された項目の情報は含まれていませんが、コントロールのプロパティ(SelectedIndexやSelectedItem)にアクセスすることで、選択された項目のインデックスやオブジェクトを取得できます。

業務アプリケーションでは、SelectedIndexChangedイベントを使用して、選択された項目に応じて詳細情報を表示する、関連するデータの絞り込みを行う、他のコントロールの有効/無効状態を変更するなど、さまざまな連動処理を実現できます。例えば、顧客リストから顧客を選択した際に、その顧客の詳細情報を表示する、タスクリストからタスクを選択した際に、そのタスクの進捗状況を表示するなど、選択された項目に応じて表示内容が変わるようなUIを構築できます。

コード例

以下のコード例では、CheckedListBoxコントロールを作成し、SelectedIndexChangedイベントを処理しています。選択された項目に応じて、ラベルにその項目のテキストを表示する例を示します。また、関連する情報を取得する例として、選択された項目のインデックスをメッセージボックスに表示します。

using System;
using System.Drawing;
using System.Windows.Forms;

namespace CheckedListBoxSample
{
    private CheckedListBox checkedListBox;
    private Label selectedItemLabel;

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeCheckedListBox();
        }

        private void InitializeCheckedListBox()
        {
            checkedListBox.SelectedIndexChanged += new EventHandler(CheckedListBox_SelectedIndexChanged);

            // 項目を追加
            checkedListBox.Items.Add("項目1");
            checkedListBox.Items.Add("項目2");
            checkedListBox.Items.Add("項目3");

            // Labelコントロールを作成
            selectedItemLabel = new Label();
            selectedItemLabel.Location = new Point(50, 220);
            selectedItemLabel.Size = new Size(200, 20);


            // フォームに追加
            this.Controls.Add(checkedListBox);
            this.Controls.Add(selectedItemLabel);
        }

        private void CheckedListBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            CheckedListBox checkedListBox = (CheckedListBox)sender;

            if (checkedListBox.SelectedItem != null)
            {
                //選択された項目のテキストをラベルに表示
                selectedItemLabel.Text = $"選択された項目: {checkedListBox.SelectedItem.ToString()}";
                //選択された項目のインデックスをメッセージボックスに表示
                MessageBox.Show($"選択された項目のインデックス: {checkedListBox.SelectedIndex}", "通知");
            }
            else
            {
                selectedItemLabel.Text = $"選択された項目: なし";
            }
        }

    }

}
実行例

実行例

コード解説

usingディレクティブ:

System, System.Drawing, System.Windows.Forms 名前空間をインポートします。これらの名前空間は、基本クラス、描画関連クラス、Windowsフォーム関連クラスを提供します。

InitializeControlsメソッド:

CheckedListBoxコントロールを作成し、Locationプロパティで配置位置、Sizeプロパティで大きさを設定します。

SelectedIndexChangedイベントにCheckedListBox_SelectedIndexChangedメソッドをイベントハンドラとして登録します。

項目を追加します。

ラベルコントロールを作成し、フォームに追加します。

作成したコントロールをフォームに追加します。

CheckedListBox_SelectedIndexChangedメソッド:

EventArgs型の引数eを受け取り、選択された項目の情報を取得します。

SelectedItemプロパティを使用して選択された項目のテキストを取得し、ラベルに表示します。

SelectedIndexプロパティを使用して選択された項目のインデックスを取得し、メッセージボックスに表示します。

まとめ

CheckedListBoxコントロールのSelectedIndexChangedイベントは、選択項目の変更を検知し、他のコントロールとの連動処理を実現するための重要なイベントです。このイベントを利用することで、選択された項目に応じて表示内容を動的に変更し、ユーザーエクスペリエンスを向上させることができます。業務アプリケーション開発においては、SelectedIndexChangedイベントを適切に活用し、より使いやすく、効率的なアプリケーションを構築することが重要です。

Please follow and like us:

コメント

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