以下のコードを使用してリストボックスで選択したアイテムの値を取得しようとしていますが、常にヌル文字列を返しています。
DataSet ds = searchforPrice(Convert.ToString(listBox1.SelectedItem));
ここでは、選択したアイテムの値を文字列としてメソッドsearchforPriceに渡して、データベースからデータセットを取得しようとしています。
選択したアイテムの値を文字列として取得するにはどうすればよいですか?
データベースからアイテムをロードするコンボボックスからリストボックスにアイテムを追加しています。
listBox1.Items.Add(comboBox2.Text);
誰もがこれに対する答えを持っています。
アイテムの表示テキストを取得する場合は、 GetItemText
メソッドを使用します。
string text = listBox1.GetItemText(listBox1.SelectedItem);
アプリケーションでListBoxを使用していて、選択されたListBoxの値を返し、Labelまたはその他のものに表示したい場合は、このコードを使用します。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = listBox1.SelectedItem.ToString();
}
リストボックスで選択されたすべてのアイテムの値を取得するには、DataRowViewで選択されたアイテムをキャストし、データがある列を選択します。
foreach(object element in listbox.SelectedItems) {
DataRowView row = (DataRowView)element;
MessageBox.Show(row[0]);
}
string textValue = ((ListBoxItem)listBox1.SelectedItem).Content.ToString();
これを使用して、選択したListItme名を取得できます::
String selectedItem = ((ListBoxItem)ListBox.SelectedItem).Name.ToString();
各ListBoxItemにNameプロパティがあることを確認してください
正しい解決策は次のようです:
string text = ((ListBoxItem)ListBox1.SelectedItem).Content.ToString();
。Nameではなく。Contentを使用してください。
ファイル(フルパス)リストのリストボックスでFullNameを取得します(Thomas Levesqueの回答の修正、Thomasに感謝):
...
string tmpStr = "";
foreach (var item in listBoxFiles.SelectedItems)
{
tmpStr += listBoxFiles.GetItemText(item) + "\n";
}
MessageBox.Show(tmpStr);
...
Pir Fahimによる以前の回答について詳しく説明しますが、彼は正しいですが、私はselectedItem.Textを使用しています
SelectedIndexChanged()イベントを使用して、データをどこかに保存します。私の場合、通常、次のようなカスタムクラスを入力します。
class myItem {
string name {get; set;}
string price {get; set;}
string desc {get; set;}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
myItem selected_item = new myItem();
selected_item.name = listBox1.SelectedItem.Text;
Retrieve (selected_item.name);
}
そして、「myItems」のリストから残りのデータを取得できます。
myItem Retrieve (string wanted_item) {
foreach (myItem item in my_items_list) {
if (item.name == wanted_item) {
// This is the selected item
return item;
}
}
return null;
}
リストボックスから値を取得する場合は、これを試してください。
String itemSelected = numberListBox.GetItemText(numberListBox.SelectedItem);