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.vb

  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.  'ポストバックのときは処理しない
  3.  If Me.IsPostBack Then
  4.   Return
  5.  End If
  6.  '項目を追加する
  7.  Me.lstFruits.Items.Add("りんご")
  8.  Me.lstFruits.Items.Add("みかん")
  9.  Me.lstFruits.Items.Add("もも")
  10.  Me.lstFruits.Items.Add("なし")
  11. End Sub
  12. Protected Sub btnChange_Click(sender As Object, e As EventArgs) Handles btnChange.Click
  13.  '選択をクリアにする
  14.  Me.lstFruits.ClearSelection()
  15.  '選択方法を切り替える
  16.  If Me.lstFruits.SelectionMode = ListSelectionMode.Single Then
  17.   Me.lstFruits.SelectionMode = ListSelectionMode.Multiple
  18.   Me.btnChange.Text = "単一選択に切り替え"
  19.  Else
  20.   Me.lstFruits.SelectionMode = ListSelectionMode.Single
  21.   Me.btnChange.Text = "複数選択に切り替え"
  22.  End If
  23. End Sub
  24. Protected Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
  25.  'ラベルの表示内容をクリア
  26.  Me.lblMessage.Text = String.Empty
  27.  '選択されている場合は内容を表示
  28.  If Me.lstFruits.SelectedIndex > -1 Then
  29.   '項目ごとに選択されているかをチェック
  30.   For Each li As ListItem In Me.lstFruits.Items
  31.    If li.Selected Then
  32.     Me.lblMessage.Text &= li.Text & " "
  33.    End If
  34.   Next
  35.  Else
  36.   '選択されていない場合はメッセージを表示
  37.   Me.lblMessage.Text = "項目が選択されていません。"
  38.  End If
  39. End Sub

○ 実行結果

実行結果
実行結果

○ 解説

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

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

前へ   次へ