はじめに
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イベントを適切に活用し、より使いやすく、効率的なアプリケーションを構築することが重要です。
コメント