2013-04-16 20 views
0

我有控制 - 组合框是语言列表。我已经在该组合中添加了语言,右键单击该组合 - >属性 - >选择属性,然后 - >项目(...)包含。我已经添加了几个语言,一个接一个。检查当前组合框中的值是否包含在组合中的项目中

问题是用户可以通过写入该组合框中写入的内容来进行手动更改,而不仅仅是通过那里可以选择的内容。所以我需要看看目前在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; 
    } 
} 

但由于某些原因,当我在写组合框“英语”,它仍然给我一个错误,虽然英语是项目。尽管如此,当我通过鼠标在下拉列表中选择语言来更改语言时,它不会报告错误。

我在做什么错?

回答

2

您可以防止用户在首位打字那里......如果他不能打就不需要这种验证的..尝试够了这个

this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList; 
+1

博览会。没有回到我的脑海,应该有办法禁用手动写入里面。谢谢! :) – Tommz