2014-11-06 32 views
6

Ich habe eine ComboBox mit drei Werten erstellt. Ich wollte, dass ein Meldungsfeld wird geöffnet, wenn kein Element ausgewählt ist, so habe ich versucht, dies:Überprüfen, ob der Combobox-Wert leer ist

if (comboBox1.SelectedItem == null) 
{ 
    MessageBox.Show("Please select a value"); 
    return; 
} 

Das funktioniert gut, aber nur, wenn ich in der Combobox in das Feld klicken. Wenn ich es nicht anfasse, wird das Programm ohne Nachrichtenbox starten. Was ist los mit dir?

+0

Was das Ereignis ist, das diesen Code auslösenden wird? Ist es in Form_Load oder? – HABJAN

+0

Nein. Ich habe es dort eingefügt, wo der Knopf geklickt wird, um das Programm – uzi42tmp

Antwort

11

if (string.IsNullOrEmpty(comboBox1.Text)) oder if (comboBox1.SelectedIndex == -1)

1

Ithink ist dies der einzige:

if(comboBox.SelectedItems==null) //or if(comboBox.SelectedItems==-1) 
    { 
     //show no item was selected from comboBox 
     } 

oder

if(comboBox.SelectedItems.Count==0) 
{ 
//message no items selected 
} 
1

Der Code sollte funktionieren. Obwohl ich auch SelectedIndex auch ......

if (this.comboBox1.SelectedItem == null || this.comboBox1.SelectedIndex == -1) 

bedeuten gesetzt werden Sie „Wenn ich es nicht berühren, wird das Programm ohne Meldungsfeld starten. Was ist los?“ es irgendeinen Code im Zusammenhang mit

+0

zu starten. Ich meinte, ich musste zuerst in das Feld der Box klicken. – uzi42tmp

+0

wo initialisierst du die Combobox ...? – liuzhidong

2

Use „berühren“

if (comboBox1.SelectedIndex == -1) 
{ 
    MessageBox.Show("Please select a value"); 
    return;   
} 

Hinweis: SelectedIndex wird auf -1 gesetzt werden, wenn SelectedValue leer ist NUR wenn FormattingEnabled wahr ist. Siehe here.

1

Überprüfen Sie den ausgewählten Indexwert von Dropdown gleich -1

if (Comboboxid.SelectedIndex == -1){ 
    MessageBox.Show("Your message."); 
}