我有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中写“英语”时,它仍然会给我一个错误,尽管英语在项目中。不过,当我通过鼠标在下拉列表中选择语言来更改语言时,它不会报告错误。
我做错了什么?
答案 0 :(得分:2)
你可以阻止用户首先在那里输入...如果他不能输入那就不需要这个验证了......试试这个
this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList;