Windows窗体组合框问题?

时间:2010-10-06 14:27:48

标签: c# winforms combobox

我正在从应用程序编写窗口,因为我正在使用组合框控件。我已经在组合框中插入了数据。我对组合框的一些属性是

dropdownstyle =下拉列表
autocompletesource = Listitem
autocompletemode =建议追加。

现在我的问题是我想限制用户只输入组合框中的那些值。 例如,如果组合框中有3个项目 苹果,芒果和葡萄

然后我希望用户在组合框中填入值时输入其中一个。

谢谢你们的时间。
Vijay shiyani

3 个答案:

答案 0 :(得分:4)

一种方法是通过检查组合框的SelectedIndex是否为-1以外的任何内容来验证其选择。如果是,那么他们已经从列表中键入或选择了一个项目。你也可以通过检查SelectedItem!= null。

来做类似的事情

例如

if (comboBox.SelectedIndex != -1)
{
   // Item from list selected
}
else
{
   // Error: please selecte an item from the list
}

避免验证的另一种方法是将ComboBoxStyle设置为DropDownList,这仍然允许他们键入,但只允许他们键入或从列表中选择一个项目。

答案 1 :(得分:3)

将DropDownStyle更改为DropDownList而不是DropDown

combobox.DropDownStyle = ComboBoxStyle.DropDownList;

或在VS属性页面中更改它

答案 2 :(得分:0)

将此代码放在ComboBox的Validating事件中:

var cbo = (ComboBox)sender;
if (cbo.SelectedIndex == -1)
{
    e.Cancel = true;
}

注意:将“取消”设置为“true”可防止用户离开正在验证的控件 请谨慎使用。