ComboBox不允许空值给用户

时间:2015-06-27 20:37:34

标签: c# winforms combobox

我希望用户无法选择"空"从ComboBox中选择(下拉式)。如果用户使用键盘删除ComboBox的文本,则可以执行此操作。我尝试过SelectedIndexChanged事件并尝试检测用户是否将值设置为null并将其更改为0。但是,当该值设置为null时,即使用户从键盘输入后,该事件也不会触发。

任何可能的解决方案?

3 个答案:

答案 0 :(得分:1)

将ComboBox的DropDownStyle设置为DropDownList

enter image description here

并在您的表单构造函数中添加如下内容:

yourComboBox.SelectedIndex = (yourComboBox.Items.Count > 0) ? 0: -1;

答案 1 :(得分:0)

如果您要求用户输入自定义值,则可以将下拉样式更改为仅允许从列表中选择项目。如果您随后设置了默认选项,则用户将永远不会选择空选项。

例如:

comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox.SelectedIndex = 0;

答案 2 :(得分:0)

我觉得你可能正在努力学习UI逻辑。如果您不想要空项目,请不要添加空项目。但通常有一个“空项目”是有用的。一个原因是,如果您为用户选择了某些内容,用户只需单击“保存”或其他内容而不更改该值并具有错误的值。

使用SelectedIndex属性确定验证期间选择的内容。

// init
cbo.comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
cbo.Items.Add("Select Letter") // first "empty" item
cbo.Items.Add("A")
cbo.Items.Add("B")
cbo.Items.Add("C")

// ---
void Save()
{
    if (cbo.SelecteIndex < 1)
    {
        MessageBox.Show("Please select letter");
        return;
    }

    // "save" code here
}
相关问题