【问题标题】:Check if combobox value is empty检查组合框值是否为空
【发布时间】:2014-11-06 07:15:03
【问题描述】:

我创建了一个包含三个值的 ComboBox。我希望在未选择任何项目时打开一个消息框,所以我尝试了这个:

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

这很好,但前提是我单击组合框中的字段。当我不触摸它时,程序将在没有消息框的情况下启动。怎么了?

【问题讨论】:

  • 触发此代码的事件是什么?是在 Form_Load 还是 ?
  • 没有。我已经把它放在点击按钮运行程序的地方

标签: c# winforms combobox


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用

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

    注意:仅当 FormattingEnabled 为 true 时,SelectedValue 为空时,SelectedIndex 才会设置为 -1。见here

    【讨论】:

      【解决方案3】:

      代码应该可以工作。虽然我也会设置 SelectedIndex ......

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

      你的意思是“当我不触摸它时,程序将在没有消息框的情况下启动。怎么了?”有没有与“触摸它”相关的代码

      【讨论】:

      • 我的意思是我必须先点击框的字段。
      • 你在哪里初始化组合框...?
      【解决方案4】:

      检查下拉选择的索引值是否等于-1

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

      【讨论】:

        【解决方案5】:

        我认为是这个:

         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 
        }
        

        【讨论】:

        • asp 组合框没有名为 SelectedItems 的属性。它只有 SelectedItem 属性。
        【解决方案6】:

        ComboBox 显示一个与 ListBox 组合的文本框,使用户能够从列表中选择项目或输入新值。有条件地测试 SelectedItem 或 SelectedIndex 将无法处理用户从另一个输入设备(如键盘)输入新值的情况。使用 string.IsNullOrEmpty(comboBox1.Text) 处理所有输入/选择情况。

        【讨论】:

        • @free4ride 之前发布了非常相似的答案
        • @free4ride 还提供了 "if (comboBox1.SelectedIndex == -1)" 作为在键盘输入情况下不起作用的选项
        【解决方案7】:

        试试这个:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-24
          • 1970-01-01
          • 2020-10-12
          • 2016-06-20
          • 2018-08-12
          • 2016-06-27
          相关资源
          最近更新 更多