ListBoxで選択されている要素を取得する - C#

ListBoxで選択されている要素を取得する

ListBoxで選択した要素を取得するコードを紹介します。

UI

下図のUIを作成します。ListBox, Button, TextBoxを配置します。

コード

下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ListBoxDemo
{
  public partial class FormListBoxSelected : Form
  {
    public FormListBoxSelected()
    {
      InitializeComponent();
    }

    private void ListBoxSelected_Load(object sender, EventArgs e)
    {
      listBox1.Items.Add("Item1");
      listBox1.Items.Add("Item2");
      listBox1.Items.Add("Item3");
      listBox1.Items.Add("Item4");
      listBox1.Items.Add("Item5");
      listBox1.Items.Add("Item6");
      listBox1.Items.Add("Item7");
      listBox1.Items.Add("Item8");
      listBox1.Items.Add("Item9");
      listBox1.Items.Add("Item10");
    }
    //Getボタン
    private void button1_Click(object sender, EventArgs e)
    {
      textBox1.Text = listBox1.SelectedItem.ToString();
    }
  }
}

解説

  private void ListBoxSelected_Load(object sender, EventArgs e)
  {
    listBox1.Items.Add("Item1");
    listBox1.Items.Add("Item2");
    listBox1.Items.Add("Item3");
    listBox1.Items.Add("Item4");
    listBox1.Items.Add("Item5");
    listBox1.Items.Add("Item6");
    listBox1.Items.Add("Item7");
    listBox1.Items.Add("Item8");
    listBox1.Items.Add("Item9");
    listBox1.Items.Add("Item10");
  }
上記のフォームのLoadイベントではListBoxに要素を追加します。今回は10個ほど要素を追加しました。

  private void button1_Click(object sender, EventArgs e)
  {
    textBox1.Text = listBox1.SelectedItem.ToString();
  }
[Get]ボタンのクリックイベントハンドラです。ListBoxで選択されている要素は"SelectedItem"プロパティで取得できます。選択されている要素を取得し、テキストボックスに要素のキャプションを表示します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


リストボックスで要素をクリックして選択します。今回は[Item4]を選択しました。


[Get]ボタンをクリックします。ListBoxで選択された要素のキャプションがTextBoxに表示されます。

ListBoxで選択されている要素を複数取得する

ListBoxで複数選択が有効になっている場合、選択されている要素をすべて選択するコードを紹介します。

UI

下図のUIを作成します。

プロパティ設定

ListBoxが複数選択できるよう、ListBoxの"SelectionMode"プロパティを"MultiSimple"に変更します。

コード

下記コードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ListBoxDemo
{
  public partial class FormListBoxMultiSelect : Form
  {
    public FormListBoxMultiSelect()
    {
      InitializeComponent();
    }

    //Get ボタン
    private void button1_Click(object sender, EventArgs e)
    {
      for (int i = 0; i < listBox1.SelectedItems.Count; i++) {
        textBox1.Text += listBox1.SelectedItems[i].ToString() + "\r\n";
      }
    }

    private void FormListBoxMultiSelect_Load(object sender, EventArgs e)
    {
      listBox1.Items.Add("Item1");
      listBox1.Items.Add("Item2");
      listBox1.Items.Add("Item3");
      listBox1.Items.Add("Item4");
      listBox1.Items.Add("Item5");
      listBox1.Items.Add("Item6");
      listBox1.Items.Add("Item7");
      listBox1.Items.Add("Item8");
      listBox1.Items.Add("Item9");
      listBox1.Items.Add("Item10");
    }
  }
}

解説

  for (int i = 0; i < listBox1.SelectedItems.Count; i++) {
    textBox1.Text += listBox1.SelectedItems[i].ToString() + "\r\n";
  }
選択している要素はListBox.SelectedItemsプロパティに格納されます。選択している要素の個数はListBox.SelectedItems.Countにより取得できます。また、選択している要素はListBox.SelectedItems[i]でアクセスできます。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


左側のListBoxの要素をクリックして要素を選択します。


要素が選択された状態で[Get]ボタンをクリックします。選択されている要素がTextBoxに表示されます。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2017-09-05
作成日: 2013-01-29
iPentec all rights reserverd.