我有 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;
}
}
但是由于某种原因,当我在组合框中写“英语”时,它仍然会给我一个错误,尽管英语在项目中。不过,当我通过在下拉列表中用鼠标选择它来更改语言时,它不会报告错误。
我究竟做错了什么?