[C#] ListBoxで選択されたアイテムを取得する方法
C#でListBoxから選択されたアイテムを取得するには、ListBoxコントロールのSelectedItem
プロパティを使用します。
このプロパティは、現在選択されているアイテムを返します。
例えば、listBox1.SelectedItem
を使って選択されたアイテムを取得できます。
選択されたアイテムが文字列である場合は、ToString()メソッド
を使用して文字列として取得することも可能です。
また、複数選択が可能な場合は、SelectedItems
プロパティを使用して選択されたすべてのアイテムを取得できます。
これにより、選択されたアイテムをリストや配列として処理することができます。
- ListBoxから選択されたアイテムの取得方法
- 選択されたアイテムの操作方法
- 選択されたアイテムの応用例
- プログラムで選択を変更する方法
選択されたアイテムの取得方法
SelectedItemプロパティの使用
ListBox
コントロールから選択されたアイテムを取得する最も基本的な方法は、SelectedItem
プロパティを使用することです。
このプロパティは、現在選択されているアイテムを返します。
以下は、SelectedItem
を使用して選択されたアイテムを取得するサンプルコードです。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonGetSelectedItem_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItem = listBox1.SelectedItem;
// 選択されたアイテムがnullでない場合
if (selectedItem != null)
{
// 選択されたアイテムを表示
MessageBox.Show($"選択されたアイテム: {selectedItem.ToString()}");
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときにListBox
から選択されたアイテムを取得し、メッセージボックスで表示します。
選択されていない場合は、その旨を通知します。
SelectedItemsプロパティの使用
ListBox
が複数選択可能な場合、SelectedItems
プロパティを使用して選択されたすべてのアイテムを取得できます。
このプロパティは、選択されたアイテムのコレクションを返します。
以下は、SelectedItems
を使用して選択されたアイテムを取得するサンプルコードです。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonGetSelectedItems_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItems = listBox1.SelectedItems;
// 選択されたアイテムが存在する場合
if (selectedItems.Count > 0)
{
string items = "選択されたアイテム:\n";
foreach (var item in selectedItems)
{
items += item.ToString() + "\n"; // 各アイテムを追加
}
MessageBox.Show(items);
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときにListBox
から選択されたすべてのアイテムを取得し、メッセージボックスで表示します。
選択されていない場合は、その旨を通知します。
選択されたアイテムのインデックス取得
選択されたアイテムのインデックスを取得するには、SelectedIndex
プロパティを使用します。
このプロパティは、選択されているアイテムのインデックスを返します。
以下は、SelectedIndex
を使用して選択されたアイテムのインデックスを取得するサンプルコードです。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonGetSelectedIndex_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムのインデックスを取得
int selectedIndex = listBox1.SelectedIndex;
// インデックスが-1でない場合
if (selectedIndex != -1)
{
// 選択されたアイテムのインデックスを表示
MessageBox.Show($"選択されたアイテムのインデックス: {selectedIndex}");
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときにListBox
から選択されたアイテムのインデックスを取得し、メッセージボックスで表示します。
選択されていない場合は、その旨を通知します。
選択されたアイテムの操作
選択されたアイテムの表示
選択されたアイテムを表示するには、ListBox
のSelectedItem
プロパティを使用します。
以下のサンプルコードでは、ボタンをクリックすることで選択されたアイテムをメッセージボックスに表示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonShowSelectedItem_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItem = listBox1.SelectedItem;
// 選択されたアイテムがnullでない場合
if (selectedItem != null)
{
// 選択されたアイテムを表示
MessageBox.Show($"選択されたアイテム: {selectedItem.ToString()}");
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときに選択されたアイテムを取得し、メッセージボックスで表示します。
選択されていない場合は、その旨を通知します。
選択されたアイテムの削除
選択されたアイテムを削除するには、ListBox
のItems
コレクションからRemoveメソッド
を使用します。
以下のサンプルコードでは、ボタンをクリックすることで選択されたアイテムを削除します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonRemoveSelectedItem_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItem = listBox1.SelectedItem;
// 選択されたアイテムがnullでない場合
if (selectedItem != null)
{
// 選択されたアイテムを削除
listBox1.Items.Remove(selectedItem);
MessageBox.Show("選択されたアイテムを削除しました。");
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときに選択されたアイテムを削除し、削除完了のメッセージを表示します。
選択されていない場合は、その旨を通知します。
選択されたアイテムの編集
選択されたアイテムを編集するには、まず選択されたアイテムを取得し、ユーザーに新しい値を入力させるためのダイアログを表示します。
以下のサンプルコードでは、ボタンをクリックすることで選択されたアイテムを編集します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonEditSelectedItem_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItem = listBox1.SelectedItem;
// 選択されたアイテムがnullでない場合
if (selectedItem != null)
{
// 新しい値を入力するためのダイアログを表示
string newValue = Microsoft.VisualBasic.Interaction.InputBox("新しい値を入力してください:", "アイテムの編集", selectedItem.ToString());
// 新しい値が空でない場合
if (!string.IsNullOrEmpty(newValue))
{
// 選択されたアイテムを削除
listBox1.Items.Remove(selectedItem);
// 新しい値でアイテムを追加
listBox1.Items.Add(newValue);
MessageBox.Show("アイテムを編集しました。");
}
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときに選択されたアイテムを取得し、ユーザーに新しい値を入力させます。
新しい値が入力された場合は、選択されたアイテムを削除し、新しい値でアイテムを追加します。
選択されていない場合は、その旨を通知します。
応用例
選択されたアイテムを別のコントロールに表示
選択されたアイテムを別のコントロール(例えば、TextBox
)に表示することができます。
以下のサンプルコードでは、ListBox
から選択されたアイテムをTextBox
に表示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonDisplayInTextBox_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItem = listBox1.SelectedItem;
// 選択されたアイテムがnullでない場合
if (selectedItem != null)
{
// TextBoxに選択されたアイテムを表示
textBox1.Text = selectedItem.ToString();
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときに選択されたアイテムをTextBox
に表示します。
選択されていない場合は、その旨を通知します。
選択されたアイテムをデータベースに保存
選択されたアイテムをデータベースに保存するには、ADO.NETを使用してデータベースに接続し、SQLコマンドを実行します。
以下のサンプルコードでは、選択されたアイテムをSQLiteデータベースに保存します。
using System.Data.SQLite; // SQLiteを使用するための名前空間
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonSaveToDatabase_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItem = listBox1.SelectedItem;
// 選択されたアイテムがnullでない場合
if (selectedItem != null)
{
// データベース接続
using (var connection = new SQLiteConnection("Data Source=mydatabase.db;Version=3;"))
{
connection.Open();
// SQLコマンドを準備
using (var command = new SQLiteCommand("INSERT INTO MyTable (ItemName) VALUES (@itemName)", connection))
{
command.Parameters.AddWithValue("@itemName", selectedItem.ToString());
command.ExecuteNonQuery(); // コマンドを実行
}
}
MessageBox.Show("選択されたアイテムをデータベースに保存しました。");
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときに選択されたアイテムをSQLiteデータベースに保存します。
選択されていない場合は、その旨を通知します。
選択されたアイテムをファイルに書き出し
選択されたアイテムをテキストファイルに書き出すこともできます。
以下のサンプルコードでは、選択されたアイテムをoutput.txt
というファイルに書き出します。
using System.IO; // ファイル操作のための名前空間
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonWriteToFile_Click(object sender, EventArgs e)
{
// ListBoxから選択されたアイテムを取得
var selectedItem = listBox1.SelectedItem;
// 選択されたアイテムがnullでない場合
if (selectedItem != null)
{
// ファイルに選択されたアイテムを書き出し
File.WriteAllText("output.txt", selectedItem.ToString());
MessageBox.Show("選択されたアイテムをファイルに書き出しました。");
}
else
{
// アイテムが選択されていない場合
MessageBox.Show("アイテムが選択されていません。");
}
}
}
このコードでは、ボタンがクリックされたときに選択されたアイテムをoutput.txt
ファイルに書き出します。
選択されていない場合は、その旨を通知します。
よくある質問
まとめ
この記事では、C#のListBox
コントロールを使用して選択されたアイテムを取得し、操作する方法について詳しく解説しました。
具体的には、選択されたアイテムの取得方法や表示、削除、編集、さらには応用例として別のコントロールへの表示やデータベースへの保存、ファイルへの書き出しについて触れました。
これらの知識を活用して、実際のアプリケーションにおいてListBox
を効果的に利用し、ユーザーインターフェースをより充実させることができるでしょう。
ぜひ、実際にコードを試してみて、ListBox
の機能を自分のプロジェクトに取り入れてみてください。