检查当前组合框中的值是否包含在该组合的项中
本文关键字:组合 包含 是否 检查 | 更新日期: 2023-09-27 18:09:35
我有Control - ComboBox,这是语言列表。我在该组合中添加了语言,右键单击该组合->属性->选择属性,然后->项目(…)包含。我一行一行地添加了一些语言。
问题是用户可以通过在comboBox中写入内容来手动更改,而不仅仅是他可以在那里选择的内容。所以我需要看看当前写在comboBox中的内容是否包含在Items中。我已经将这个函数添加到事件" validation ":
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中写"English"时,它仍然会给我一个错误,尽管英语在Items中。但是,当我在下拉列表中用鼠标选择语言来更改语言时,它不会报告错误。
我做错了什么?
你可以防止用户在第一时间输入…如果他不会打字,就不需要这种验证。试试这个
this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList;