2010-03-17 2 views
8

Ho una casella combinata in cui devo visualizzare le date da un database. L'utente deve selezionare una data dalla casella combinata per procedere oltre, ma non so come rendere l'utente consapevole della selezione dell'elemento dalla casella combinata prima di procedere ulteriormente.Come verificare se l'elemento nella casella combinata è selezionato o meno in C#?

Quale processo deve essere seguito in modo che un utente possa ricevere un messaggio se non ha selezionato la data dalla combo?

risposta

12
if (string.IsNullOrEmpty(ComboBox.SelectedText)) 
{ 
MessageBox.Show("Select a date"); 
} 
+2

So che questo post è vecchio, ma come mi sono imbattuto questo, alcuni potrebbero inciampare pure. Nel mio caso il "ComboBox.SelectedText" non funzionava, dovevo usare "ComboBox.Text". Ho solo controllato che ci fosse un'altra risposta con il mio approccio, ma dal mio UP a quella risposta, qui potrebbe catturare l'attenzione più facilmente. – StinkyCat

+1

@StinkyCat ha ragione ... Ho continuato a ottenere un valore nullo quando si utilizza "SelectedText" o "SelectedValue" ma semplicemente "Text" funziona. – KingOfAllTrades

+0

è più facile da usare Combobox.SelectedItem.ToString in modo da avere un'idea di cosa è stato selezionato o se nulla è stato selezionato. ma grazie per la risposta questo ha aiutato. – JT4U

1

controllare la proprietà testo come questo

if (combobox.text != String.Empty) 
{ 
//continue 
} 
else 
{ 
// error message 
} 
1
if (cboDate.SelectedValue!=null) 
{ 
     //there is a selected value in the combobox 
} 
else 
{ 
    //no selected value 
} 
0

È possibile utilizzare SelectedIndex o SelectedItem proprietà del ComboBox.

2

Ti consigliamo di utilizzare DropDownStyle = DropDownList in modo da poter facilmente fare in modo che l'utente scelto una voce dall'elenco e non possono digitare testo casuale nella casella. Aggiungi un oggetto vuoto agli Elementi prima di popolarlo (o "Seleziona"). Ora, il default è automaticamente vuoto e il test è semplice: basta controllare che SelectedIndex> 0.

+0

Immagino che questo dovrebbe essere lo stile predefinito di un ComboBox – meJustAndrew

3

È possibile utilizzare questo:

if (Convert.ToInt32(comboBox1.SelectedIndex) != -1) 
{ 
    // checked 
} 
else 
{ 
    // unckecked 
} 
4

Ecco la codifica perfetta che controlla se l'elemento Casella combinata è selezionata oppure no:

if (string.IsNullOrEmpty(comboBox1.Text)) 
{ 
    MessageBox.Show("No Item is Selected"); 
} 
else 
{ 
    MessageBox.Show("Item Selected is:" + comboBox1.Text); 
} 
0

Pl. note ComboBox.Text controlla solo il testo nell'area modificabile di ComboBox, quindi non dovrebbe essere utilizzato quando si desidera verificare se è presente una selezione all'interno del controllo ComboBox.

Funzionerà sempre.

 int a = ComboBox.SelectedIndex.CompareTo(-1); 

     if (a == 0) 
     { 
      MessageBox.Show("Please select something."); 
     } 
     else 
     { 
      // do something if combo box selection is done.! 
     } 
1
if(combobox.Selectedindex==-1) 
{ 
MessageBox.Show("Please Select an item"); 
} 

else 
{ 
MessageBox.Show("An Item was selected"); 
}