我希望用户无法选择"空"从ComboBox中选择(下拉式)。如果用户使用键盘删除ComboBox的文本,则可以执行此操作。我尝试过SelectedIndexChanged
事件并尝试检测用户是否将值设置为null并将其更改为0
。但是,当该值设置为null时,即使用户从键盘输入后,该事件也不会触发。
任何可能的解决方案?
答案 0 :(得分:1)
将ComboBox的DropDownStyle
设置为DropDownList
:
并在您的表单构造函数中添加如下内容:
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
}