Проверьте, содержится ли значение в выпадающем списке в элементах этого комбо

У меня есть 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, это все равно давало бы мне ошибку, хотя английский в "Предметах". Тем не менее, когда я меняю язык, выбирая его с помощью мыши в раскрывающемся списке, он не сообщает об ошибке.

Что я делаю неправильно?

1 ответ

Решение

Вы можете запретить пользователю печатать там в первую очередь... если он не может печатать, нет необходимости в этой проверке... попробуйте это

this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList;
Другие вопросы по тегам