如何仅在组合框中允许有效值?

时间:2014-02-18 12:16:38

标签: c# combobox selection

在带有DotNet 4的C#中我有一个带有组合框的表单,在启动程序时会填充值。 现在,用户可以下拉并选择其中一个值。 但是:也可以在组合框字段中写入新内容。

问题:我能做些什么,不可能写出不属于列表的东西?

由于

2 个答案:

答案 0 :(得分:3)

要使ComboBox的文本部分不可编辑,请将DropDownStyle属性设置为“DropDownList”。

答案 1 :(得分:1)

可以通过简单地将属性分配给组合框.DropDownStyle = ComboBoxStyle.DropDownList来完成。但是,此属性不允许编辑文本。表示您必须通过鼠标或上/下箭头键选择项目。您无法通过选择此属性来过滤结果。如果您希望过滤结果但不允许接受无效值,那么您可以通过在cmb_Validating事件中编写一些代码来实现此目的

private void cmb_Validating(object sender, CancelEventArgs e)
{
    if (cmb.SelectedValue == null && cmb.Text != string.Empty)
        e.Cancel=true;
}