我希望用户不能从ComboBox(下拉样式)中选择“空”选项。如果用户用他的键盘删除了ComboBox的文本,就可以做到这一点。我尝试了一个SelectedIndexChanged
事件,并尝试检测用户是否将值设置为空,并将其更改为0
。但是,当该值设置为空时(即使用户从键盘输入时),该事件不会触发。组合框不允许给用户空值
任何可能的解决方案?
我希望用户不能从ComboBox(下拉样式)中选择“空”选项。如果用户用他的键盘删除了ComboBox的文本,就可以做到这一点。我尝试了一个SelectedIndexChanged
事件,并尝试检测用户是否将值设置为空,并将其更改为0
。但是,当该值设置为空时(即使用户从键盘输入时),该事件不会触发。组合框不允许给用户空值
任何可能的解决方案?
设置您的组合框的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
}
没有空白选项。 – depperm
@depperm(编辑的问题)我该怎么做?他总是可以用他的键盘删除组合框的文字 – dimitris93
你想让用户输入你的盒子吗? –