ListBoxで選択されている要素を取得する
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を愛用