[英]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.