ComboBox 不允许用户使用空值
ComboBox don't allow empty value to the user
我希望用户无法从 ComboBox(下拉样式)中 select "empty" 选择。如果用户使用键盘删除 ComboBox 的文本,就可以完成此操作。我试过有一个 SelectedIndexChanged
事件并尝试检测用户是否将值设置为 null 并将其更改为 0
。但是,当该值设置为 null 时(即使在用户从键盘按下回车键之后),此事件也不会触发。
任何可能的解决方案?
设置DropDownStyle
of your ComboBox to DropDownList
:
并在表单的构造函数中添加如下内容:
yourComboBox.SelectedIndex = (yourComboBox.Items.Count > 0) ? 0: -1;
如果您不要求用户能够输入自定义值,您可以更改下拉样式以仅允许从列表中选择项目。如果您随后设置默认选项,用户将永远不会选择空选项。
例如:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox.SelectedIndex = 0;
我感觉您可能正在为 UI 逻辑而苦苦挣扎。如果您不想拥有空项目,那就不要添加一个。但是 "empty item" 通常很有用。一个原因是,如果您为用户选择了某些内容,用户只需单击 "save" 或其他内容而不更改该值并获得错误的值。
使用 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
}
我希望用户无法从 ComboBox(下拉样式)中 select "empty" 选择。如果用户使用键盘删除 ComboBox 的文本,就可以完成此操作。我试过有一个 SelectedIndexChanged
事件并尝试检测用户是否将值设置为 null 并将其更改为 0
。但是,当该值设置为 null 时(即使在用户从键盘按下回车键之后),此事件也不会触发。
任何可能的解决方案?
设置DropDownStyle
of your ComboBox to DropDownList
:
并在表单的构造函数中添加如下内容:
yourComboBox.SelectedIndex = (yourComboBox.Items.Count > 0) ? 0: -1;
如果您不要求用户能够输入自定义值,您可以更改下拉样式以仅允许从列表中选择项目。如果您随后设置默认选项,用户将永远不会选择空选项。
例如:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox.SelectedIndex = 0;
我感觉您可能正在为 UI 逻辑而苦苦挣扎。如果您不想拥有空项目,那就不要添加一个。但是 "empty item" 通常很有用。一个原因是,如果您为用户选择了某些内容,用户只需单击 "save" 或其他内容而不更改该值并获得错误的值。
使用 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
}