2014-11-06 25 views
6

Tôi đã tạo một ComboBox có ba giá trị. Tôi muốn một hộp thông báo mở ra khi không có mục nào được chọn nên tôi đã thử điều này:Kiểm tra xem giá trị combobox có trống không

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

Điều đó làm việc tốt nhưng chỉ khi tôi nhấp vào trường trong hộp tổ hợp. Khi tôi không chạm vào nó, chương trình sẽ bắt đầu mà không có hộp tin nhắn. Chuyện gì vậy?

+0

gì sự kiện đó là kích hoạt mã này? Có trong Form_Load hay không? – HABJAN

+0

No. Tôi đã đặt nó ở nơi mà nút được bấm để chạy chương trình – uzi42tmp

Trả lời

11

if (string.IsNullOrEmpty(comboBox1.Text)) hoặc if (comboBox1.SelectedIndex == -1)

1

Ithink đây là một:

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

hoặc

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

Mã nên làm việc. Mặc dù tôi cũng sẽ thiết lập SelectedIndex là tốt ......

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

bạn có nghĩa là "Khi tôi không chạm vào nó, chương trình sẽ bắt đầu mà không có hộp thông báo. Có vấn đề gì?" là có bất kỳ mã liên quan với "chạm vào nó"

+0

Tôi có nghĩa là tôi đã phải bấm vào lĩnh vực của hộp đầu tiên. – uzi42tmp

+0

nơi nào bạn khởi tạo combobox ...? – liuzhidong

2

Sử dụng

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

Lưu ý: SelectedIndex sẽ được thiết lập để -1 khi SelectedValue là trống CHỈ khi FormattingEnabled là đúng. Xem here.

1

Kiểm tra giá trị chỉ số được lựa chọn thả xuống bằng -1

if (Comboboxid.SelectedIndex == -1){ 
    MessageBox.Show("Your message."); 
} 
Các vấn đề liên quan