繁体   English   中英

ComboBox不允许用户输入空值

[英]ComboBox don't allow empty value to the user

我希望用户不能从ComboBox(下拉样式)中选择“空”选项。 如果用户使用键盘删除ComboBox的文本,则可以完成此操作。 我试过有一个SelectedIndexChanged事件,并尝试检测用户是否将值设置为null并将其更改为0 但是,将值设置为null时(即使在用户从键盘按下回车键之后),也不会触发此事件。

任何可能的解决方案?

将ComboBox的DropDownStyle设置为DropDownList

在此处输入图片说明

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

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

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

例如:

comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox.SelectedIndex = 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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM