Проверьте, содержится ли значение в выпадающем списке в элементах этого комбо
У меня есть 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;