C# 检查combobox值是否为空

C# 检查combobox值是否为空,c#,winforms,combobox,C#,Winforms,Combobox,我创建了一个包含三个值的组合框。我希望在未选择任何项目时打开一个消息框,因此我尝试了以下方法: if (comboBox1.SelectedItem == null) { MessageBox.Show("Please select a value"); return; } 这很好,但只有当我点击组合框中的字段时。当我不触摸它时,程序将在没有消息框的情况下启动。有什么问题吗?如果(string.IsNullOrEmpty(comboBox1.Text))或如果(comboBox

我创建了一个包含三个值的组合框。我希望在未选择任何项目时打开一个消息框,因此我尝试了以下方法:

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

这很好,但只有当我点击组合框中的字段时。当我不触摸它时,程序将在没有消息框的情况下启动。有什么问题吗?

如果(string.IsNullOrEmpty(comboBox1.Text))
如果(comboBox1.SelectedIndex=-1)
我想这是一个:

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


代码应该是有效的。虽然我也会设置SelectedIndex

if (this.comboBox1.SelectedItem == null || this.comboBox1.SelectedIndex == -1)
你的意思是“当我不触摸它时,程序将在没有消息框的情况下启动。怎么了?”是否有与“触摸它”相关的代码使用

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

注意:当SelectedValue为空时,SelectedIndex将设置为-1,仅当FormattingEnabled为true时。看

检查下拉列表的选定索引值是否等于
-1

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

组合框显示与列表框组合的文本框,使用户可以从列表中选择项目或输入新值。有条件地测试SelectedItem或SelectedIndex不会处理用户从其他输入设备(如键盘)输入新值的情况。使用string.IsNullOrEmpty(comboBox1.Text)处理所有输入/选择案例。

尝试以下方法:

  if ((comboBox.SelectedValue == null) || string.IsNullOrEmpty(comboBox.Text))
                        {
    
    //message no items selected 
                    }

触发此代码的事件是什么?它是表单加载还是?否。我已将它放在单击按钮运行程序的位置。我的意思是我必须先单击框的字段。在哪里初始化组合框?类似的答案以前也曾被谷歌发布过@free4ride@free4ride还提供了“if(comboBox1.SelectedIndex==-1)”选项,该选项在键盘输入情况下不起作用。asp组合框没有名为SelectedItems的属性。。它只有SelectedItem属性。
  if ((comboBox.SelectedValue == null) || string.IsNullOrEmpty(comboBox.Text))
                        {
    
    //message no items selected 
                    }