La validation si un combobox c'est SelectedText propriété est vide échoue toujours

Problème Simple: je vérifie pour voir si une zone de liste déroulante a eu un élément sélectionné avec string.IsNullOrEmpty(). Le problème est que, même si c'est sélectionnée, le message d'erreur s'affiche. Ce que je fais mal?

Voici mon code:

private void button1Click(object sender, EventArgs e)
{
    if (string.IsNullOrEmpty(comboBox1.SelectedText))//here should skip to else - but doesn't
    {
        MessageBox.Show("You must select a conversion type", "Error");
    }
    else
    {
        if (comboBox1.SelectedText == "Currency")
        {
            double input = Convert.ToDouble(textBox1.Text);
            if (!string.IsNullOrEmpty(comboBox2.SelectedText))
            {
                string type = comboBox2.SelectedText;
                double result = convertCurrency(type, input);
                if (result != -1)
                {
                    label1.Text = Convert.ToString(result);
                }
             }
             else
             {
                 MessageBox.Show("You must select a conversion type", "Error");
             }
         }
         else
         {
             MessageBox.Show("curency");
         }
     } 
}

Remarque: Ceci est mon deuxième programme C# - donc merci de ne pas crier à moi si je suis stupide.

  • Pourquoi ne pas vérifier l'indice de la valeur sélectionnée?
  • Lors du débogage, quelle est la valeur de la comboBox1.SelectedText propriété? Par ailleurs, le contenu lié aux données, ou tout simplement les éléments ajoutés à la collection?
  • index? Que voulez-vous dire?
  • Il signifie; msdn.microsoft.com/en-us/library/... lorsque rien n'est sélectionné, il sera -1.
  • Quelle est la DropDownStyle pour la ComboBox?
  • Essayez de caractères (string)comboBox2.SelectedItem au lieu de SelectedText
  • va jeter l'exception lorsque rien n'est sélectionné.
  • Non, il ne sera pas si enveloppé dans un test - par exemple, si(Chaîne de caractères.IsNullOrEmpty((string)cmbDelimiter.SelectedItem) fonctionne très bien

InformationsquelleAutor imulsion | 2013-08-08