繁体   English   中英

检查当前在组合框中的值是否包含在该组合的项目中

[英]Check if the value currently in combobox is contained in items of that combo

我有Control - ComboBox这是语言列表。 我在该组合中添加了语言,右键单击该组合 - >属性 - >选择那里的属性,然后 - >项目(...)包含。 我已经添加了几种语言,一个接一个。

问题是用户可以通过写入该组合框中的内容来手动更改,而不仅仅是他可以通过那里选择的内容。 所以我需要看看当前在comboBox中编写的内容是否包含在Items中。 我已将此功能添加到事件“验证”中:

private bool ValidatingComboBox(ComboBox sender)
{
   if (sender.SelectedValue != null)
   {
      if (sender.Items.Contains(sender.SelectedValue))
      {
         errorProvider.SetError(sender, "");
         return true;
      }

      else
      {
         errorProvider.SetError(sender, "No such thing in list!");
         return false;
      }
   }

   else
   {
      errorProvider.SetError(sender, "No such thing in list!");
      return false;
   }
}

但出于某种原因,当我在comboBox中写“英语”时,它仍然会给我一个错误,尽管英语是在项目中。 不过,当我通过在下拉列表中选择鼠标来更改语言时,它不会报告错误。

我究竟做错了什么?

你可以阻止用户首先在那里打字......如果他不能打字那里就不需要这个验证了。试试这个

this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM