web-dev-qa-db-ja.com

リストボックスで選択した項目の値を文字列として取得

以下のコードを使用してリストボックスで選択したアイテムの値を取得しようとしていますが、常にヌル文字列を返しています。

DataSet ds = searchforPrice(Convert.ToString(listBox1.SelectedItem));

ここでは、選択したアイテムの値を文字列としてメソッドsearchforPriceに渡して、データベースからデータセットを取得しようとしています。

選択したアイテムの値を文字列として取得するにはどうすればよいですか?

データベースからアイテムをロードするコンボボックスからリストボックスにアイテムを追加しています。

 listBox1.Items.Add(comboBox2.Text);

enter image description here

誰もがこれに対する答えを持っています。

22
Amrit Sharma

アイテムの表示テキストを取得する場合は、 GetItemText メソッドを使用します。

string text = listBox1.GetItemText(listBox1.SelectedItem);
76
Thomas Levesque

アプリケーションでListBoxを使用していて、選択されたListBoxの値を返し、Labelまたはその他のものに表示したい場合は、このコードを使用します。

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
         label1.Text  = listBox1.SelectedItem.ToString();
    }
8
Pir Fahim Shah

リストボックスで選択されたすべてのアイテムの値を取得するには、DataRowViewで選択されたアイテムをキャストし、データがある列を選択します。

foreach(object element in listbox.SelectedItems) {
    DataRowView row = (DataRowView)element;
    MessageBox.Show(row[0]);
}
1
benoit
string textValue = ((ListBoxItem)listBox1.SelectedItem).Content.ToString();
1
Zael

これを使用して、選択したListItme名を取得できます::

String selectedItem = ((ListBoxItem)ListBox.SelectedItem).Name.ToString();

各ListBoxItemにNameプロパティがあることを確認してください

0
Vishal Tank

正しい解決策は次のようです:

string text = ((ListBoxItem)ListBox1.SelectedItem).Content.ToString();

。Nameではなく。Contentを使用してください。

0
Chris Jackson

ファイル(フルパス)リストのリストボックスでFullNameを取得します(Thomas Levesqueの回答の修正、Thomasに感謝):

...
        string tmpStr = "";
        foreach (var item in listBoxFiles.SelectedItems)
        {
            tmpStr += listBoxFiles.GetItemText(item) + "\n";
        }
        MessageBox.Show(tmpStr);
...
0
Alex

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;
}
0
Davide C

リストボックスから値を取得する場合は、これを試してください。

String itemSelected = numberListBox.GetItemText(numberListBox.SelectedItem);
0
Mahfuzur Rahman