【问题标题】:Check if Combo box is empty C#检查组合框是否为空 C#
【发布时间】:2019-03-26 12:37:26
【问题描述】:

我正在尝试在 Windows 应用程序表单中使用 C# 检查组合框是否为空。以下是两种可能的方式:

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

为了确保用户从下拉列表中选择一个值并写出自己的答案,哪种方法最好? 根据我的研究,第二种方法(如果(comboBox1.SelectedIndex == -1))将满足我的需求。对吗?

【问题讨论】:

  • 如果下拉灯有 empty string 作为选项,则第一种可能性是错误的(用户可以故意选择空选项)。如果是第二个选项,我宁愿把它写成if (comboBox1.SelectedIndex < 0),以免使用 magic constant -1

标签: c# winforms combobox


【解决方案1】:

如果您只关心确保用户从可用列表中选择一个项目,只需将您的组合框的 DropDownStyle 更改为 DropDownList

或者如果您想允许他们输入但确保它在列表中,您可以执行以下操作:

var txt = comboBox1.Text;

if(string.IsNullOrEmpty())
  return;

var test = comboBox1.Items?.OfType<string>().ToList().Any(x => x?.Trim() == txt?.Trim());

所以如果测试为假,这意味着他们选择/输入的内容不存在于可用项目列表中

【讨论】:

    【解决方案2】:

    对于组合框,您可以使用下面的代码来检查它是否为空

     if(comboBox1.Items.Count == 0 )
     {
        // your code
     }
    

    【讨论】:

      【解决方案3】:

      这是我尝试的,它的工作。欢迎评论:

      if (comboBox1.SelectedIndex > -1 )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-24
        • 2020-10-12
        • 2010-11-01
        • 2016-06-20
        • 2012-12-01
        • 2017-09-13
        • 1970-01-01
        相关资源
        最近更新 更多