2013-02-21 9 views
16

Sto cercando di ottenere il valore dell'elemento selezionato nella casella di riepilogo utilizzando il codice riportato di seguito, ma restituisce sempre una stringa nulla.Ottenere il valore dell'elemento selezionato nella casella di riepilogo come stringa

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

Qui io sto cercando di passare il valore della voce selezionata come stringa al metodo searchforPrice a retrive set di dati dal database.

Come posso recuperare il valore dell'elemento selezionato come stringa?

Sto aggiungendo elementi a listbox dalla casella combinata che a sua volta carica gli articoli dal database.

listBox1.Items.Add(comboBox2.Text); 

enter image description here

Chiunque ha rispondere per questo ..

+2

Si prega di inviare il codice che carica la casella di riepilogo. –

risposta

56

Se si desidera recuperare il testo di visualizzazione della voce, utilizzare il metodo GetItemText:

string text = listBox1.GetItemText(listBox1.SelectedItem); 
+2

Posso ottenere un ... liscio! +1 amico. –

+0

ancora restituendo null –

+0

@AmritSharma, hai controllato che 'SelectedItem' non è nullo? –

-1

Se si desidera per recuperare l'oggetto selezionato dalla lista, ecco il codice ...

String SelectedItem = listBox1.SelectedItem.Value; 
+1

listBox1.SelectedItem.Value; // la parte .Value al e di listBox1.SelectedItem non sembra essere visualizzata nel mio IDE. qualche indicazione? – BKSpurgeon

5

Se si utilizza ListBox nella vostra applicazione e si desidera restituire il valore selezionato di ListBox e visualizzarli in un'etichetta o qualsiasi altra cosa quindi utilizzare questo codice, che vi aiuterà a

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     label1.Text = listBox1.SelectedItem.ToString(); 
    } 
+0

hanno provato il codice che hai suggerito, la stringa che sta trasmettendo è: System.Windows.Controls.ListViewItem: AndThenTheActualString - come si fa a sbarazzarsi della lunga system.windows - che nessuno vuole vedere? – BKSpurgeon

+1

@BKSpurgeon la risposta funziona con ListBox. Il tuo codice utilizzava ListView, ed è per questo che c'è "System.Windows.Controls.ListViewItem" lì. – Dialecticus

0

Se vuole recuperare il valore da una casella di riepilogo si dovrebbe provare questo:

String itemSelected = numberListBox.GetItemText(numberListBox.SelectedItem); 
+0

GetItemText \t metodo non è disponibile ... per favore aiuto ... iam sviluppo dell'applicazione per telefono Windows –

1

retreive il valore di tutti elemento selezionato nella casella di riepilogo à potete lanciare elemento selezionato nella DataRowView e quindi selezionare la colonna dove sono i dati:

foreach(object element in listbox.SelectedItems) { 
    DataRowView row = (DataRowView)element; 
    MessageBox.Show(row[0]); 
} 
0

Get FullName in ListBox di file (percorso completo) Lista (Thomas Levesque risposta modificaton, grazie Thomas):

... 
     string tmpStr = ""; 
     foreach (var item in listBoxFiles.SelectedItems) 
     { 
      tmpStr += listBoxFiles.GetItemText(item) + "\n"; 
     } 
     MessageBox.Show(tmpStr); 
... 
1
string textValue = ((ListBoxItem)listBox1.SelectedItem).Content.ToString(); 
+1

Non è una buona idea usare 'as' come questo. Rende l'aspetto più pulito, ma è malformato. 'as' serve per verificare se un oggetto è un determinato tipo. Stai usando gli strumenti sbagliati per il lavoro. È meglio castarlo correttamente '((ListBoxItem) listBox1.SelectedItem)' –

+0

Grazie per la spiegazione PC Luddite, correggerlo. – Zael

0

È possibile utilizzare questo per ottenere il selezionato Nome ListItme ::

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

assicurarsi che il vostro ciascuno ListBoxItem hanno una proprietà Nome

Problemi correlati