2010-03-17 3 views
8

J'ai une liste déroulante dans laquelle je dois afficher les dates d'une base de données. L'utilisateur doit sélectionner une date dans la liste déroulante pour aller plus loin, mais je ne sais pas comment faire en sorte que l'utilisateur sache d'abord sélectionner l'élément dans la liste déroulante pour continuer.Comment vérifier si l'élément de la liste déroulante est sélectionné ou non en C#?

Quel processus doit être suivi pour qu'un utilisateur puisse recevoir un message s'il n'a pas sélectionné la date du combo?

Répondre

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

Je sais ce poste est vieux, mais comme je suis tombé cela, certains pourraient tomber par hasard aussi bien. Dans mon cas, le 'ComboBox.SelectedText' ne fonctionnait pas, j'ai dû utiliser 'ComboBox.Text'. J'ai seulement vérifié qu'il y avait une autre réponse avec mon approche, mais à partir de mon UP à cette réponse, ici pourrait attirer l'attention plus facilement. – StinkyCat

+1

@StinkyCat a raison ... J'ai continué à obtenir une valeur nulle en utilisant 'SelectedText' ou 'SelectedValue' mais en utilisant simplement 'Text' fonctionne. – KingOfAllTrades

+0

il est plus facile d'utiliser Combobox.SelectedItem.ToString afin que vous ayez une idée de ce qui a été sélectionné ou si rien n'a été sélectionné du tout. mais merci pour la réponse cela a aidé. – JT4U

1

vérifier la propriété de texte comme celui-ci

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

Vous pouvez utiliser SelectedIndex ou SelectedItem propriétés du ComboBox.

2

Vous voulez utiliser DropDownStyle = DropDownList de sorte que vous pouvez facilement vous assurer que l'utilisateur choisi une entrée dans la liste et ne peut pas taper du texte au hasard dans la boîte. Ajouter un élément vide aux éléments avant de le remplir (ou "Veuillez sélectionner"). Maintenant, la valeur par défaut est automatiquement vide et le test est simple: il suffit de vérifier que SelectedIndex> 0.

+0

Je suppose que cela devrait être le style par défaut d'un ComboBox – meJustAndrew

3

Vous pouvez utiliser ceci:

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

Voici le codage parfait qui vérifie si la zone de liste déroulante élément est sélectionné ou non:

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

Pl. note ComboBox.Text ne vérifie que le texte situé dans la zone modifiable de la zone de liste déroulante, ce qui n'est pas censé être utilisé lorsque vous souhaitez vérifier s'il existe une sélection dans la zone de liste déroulante.

Cela fonctionnera toujours.

 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"); 
} 
Questions connexes