我创建了一个包含三个值的ComboBox。我希望在没有选择任何项目时打开一个消息框,所以我尝试了这个:
if (comboBox1.SelectedItem == null)
{
MessageBox.Show("Please select a value");
return;
}
这很好但只有当我点击组合框中的字段时才能正常工作。当我不接触它时,程序将在没有消息框的情况下启动。怎么了?
答案 0 :(得分:13)
if (string.IsNullOrEmpty(comboBox1.Text))
或if (comboBox1.SelectedIndex == -1)
答案 1 :(得分:2)
使用
if (comboBox1.SelectedIndex == -1)
{
MessageBox.Show("Please select a value");
return;
}
注意:当SelectedValue为空时,当FormattingEnabled为true时,SelectedIndex将设置为-1。见here。
答案 2 :(得分:1)
我认为这是那个:
if(comboBox.SelectedItems==null) //or if(comboBox.SelectedItems==-1)
{
//show no item was selected from comboBox
}
或
if(comboBox.SelectedItems.Count==0)
{
//message no items selected
}
答案 3 :(得分:1)
代码应该有效。虽然我也会设置SelectedIndex ......
if (this.comboBox1.SelectedItem == null || this.comboBox1.SelectedIndex == -1)
你的意思是"当我不接触它时,程序将在没有消息框的情况下启动。什么错了?"是否有任何与"触摸它"
相关的代码答案 4 :(得分:1)
检查下拉列表的选定索引值是否等于-1
if (Comboboxid.SelectedIndex == -1){
MessageBox.Show("Your message.");
}
答案 5 :(得分:0)
组合框显示一个文本框和一个列表框,该列表框使用户可以从列表中选择项目或输入新值。有条件地测试SelectedItem或SelectedIndex不会处理用户从另一个输入设备(如键盘)输入新值的情况。使用string.IsNullOrEmpty(comboBox1.Text)处理所有输入/选择情况。
答案 6 :(得分:0)
尝试一下:
if ((comboBox.SelectedValue == null) || string.IsNullOrEmpty(comboBox.Text))
{
//message no items selected
}