ListBoxコントロール

ListBoxコントロール

 ListBoxコントロールはWebページにリストボックスを表示します。DropDownListコントロールと似たような扱い方ができます。

■ 主なプロパティ

プロパティ名 概要
Items ListBoxコントロールの項目のコレクションを取得する
SelectedIndex ListBoxコントロール内の選択された項目のインデックスを取得・設定する
SelectedItem ListBoxコントロール内の選択された項目を取得・設定する
SelectedValue ListBoxコントロール内の選択された項目の値を取得・設定する
SelectionMode ListBoxコントロールの選択モードを取得・設定する
ListBoxの主なプロパティ

■ 主なイベント

イベント名 概要
SelectedIndexChanged ListBoxコントロール内の選択項目が変更されたときに発生する
ListBoxの主なイベント

 ListBoxコントロールはSelectionModeプロパティでユーザーがListBoxコントロール内で一度に選択できる項目数や、複数の項目を選択するかどうかを設定できます。Itemsプロパティのコレクションが持っているAddメソッドで項目を追加します。

プロジェクトの種類 ASP.NET Webアプリケーション
プロジェクト名 ListBoxTest

サンプルダウンロード

○ デザイン

 Webフォームを追加して、次の図のように各コントロールを配置してください。

コントロールの配置例
コントロールの配置例

○ プログラム

 次のように各イベントハンドラを記述してください。

index.aspx.cs

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3.  //ポストバックのときは処理しない
  4.  if (this.IsPostBack)
  5.  {
  6.   return;
  7.  }
  8.  //項目を追加する
  9.  this.lstFruits.Items.Add("りんご");
  10.  this.lstFruits.Items.Add("みかん");
  11.  this.lstFruits.Items.Add("もも");
  12.  this.lstFruits.Items.Add("なし");
  13. }
  14. protected void btnChange_Click(object sender, EventArgs e)
  15. {
  16.  //選択をクリアにする
  17.  this.lstFruits.ClearSelection();
  18.  //選択方法を切り替える
  19.  if (this.lstFruits.SelectionMode == ListSelectionMode.Single)
  20.  {
  21.   this.lstFruits.SelectionMode = ListSelectionMode.Multiple;
  22.   this.btnChange.Text = "単一選択に切り替え";
  23.  }
  24.  else
  25.  {
  26.   this.lstFruits.SelectionMode = ListSelectionMode.Single;
  27.   this.btnChange.Text = "複数選択に切り替え";
  28.  }
  29. }
  30. protected void btnSend_Click(object sender, EventArgs e)
  31. {
  32.  //ラベルの表示内容をクリア
  33.  this.lblMessage.Text = string.Empty;
  34.  //選択されている場合は内容を表示
  35.  if (this.lstFruits.SelectedIndex > -1)
  36.  {
  37.   //項目ごとに選択されているかをチェック
  38.   foreach (ListItem li in this.lstFruits.Items)
  39.   {
  40.    if (li.Selected)
  41.    {
  42.     this.lblMessage.Text += li.Text + " ";
  43.    }
  44.   }
  45.  }
  46.  else
  47.  {
  48.   //選択されていない場合はメッセージを表示
  49.   this.lblMessage.Text = "項目が選択されていません。";
  50.  }
  51. }

○ 実行結果

実行結果
実行結果

○ 解説

 33~42行目は、LibtBoxコントロールの選択方法を変更しています。SelectionModeプロパティに現在の選択方法が格納されています。

 51~66行目は選択した項目を表示しています。SelectedIndexプロパティは選択されていない場合は-1が格納されています。それ以外の場合は何かが選択されています。54~60行目では、複数の項目が選択されているかもしれないので、ListBoxコントロールの項目をループして選択されているかどうかを確認しています。各項目(ListItemオブジェクト)のSelectedプロパティに選択状態が格納されています。

前へ   次へ