2014-11-06 22 views
6

Utworzono ComboBox z trzema wartościami. Chciałem, że otwiera się okno komunikatu, gdy nie wybrano poz więc próbowałem to:Sprawdź, czy wartość combobox jest pusta

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

To działa dobrze, ale tylko wtedy, gdy klikam na pole w combobox. Kiedy go nie dotknę, program rozpocznie się bez okna komunikatu. Co jest nie tak?

+0

Co to wydarzenie, które jest wyzwalanie ten kod? Czy to w Form_Load lub? – HABJAN

+0

Nie. Umieściłem go tam, gdzie kliknięto przycisk, aby uruchomić program. – uzi42tmp

Odpowiedz

11

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

1

iThink to jest jeden:

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

lub

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

Kod powinien pracować. Chociaż ja również ustawić SelectedIndex jak dobrze ......

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

znaczy „Kiedy nie dotykać go, zostanie uruchomiony program bez okna komunikatu. Co się stało?” Czy jest jakiś kod związany z „dotknąć to”

+0

Miałem na myśli, że musiałem najpierw kliknąć pole w polu. – uzi42tmp

+0

gdzie można zainicjować combobox ...? – liuzhidong

2

Używaj

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

Uwaga: SelectedIndex zostanie ustawiona na -1, gdy SelectedValue jest puste TYLKO gdy FormattingEnabled jest prawdą. Zobacz here.

1

Sprawdź wybrana wartość indeksu rozwijanej równa -1

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