我在写一个包含一些按钮和组合框的表单。 默认情况下,“确定”按钮处于禁用状态,我希望仅在选择实际值(不是组合框名称)后启用它。检查是否选择了ComboBox值
我知道如何访问选定的值,以及如何检查是否选择了一个值 - 但只有在窗体关闭后才能完成这两项操作(使用“x”或使用“ok”按钮 - 这是禁用的)。
任何想法?
谢谢。
我在写一个包含一些按钮和组合框的表单。 默认情况下,“确定”按钮处于禁用状态,我希望仅在选择实际值(不是组合框名称)后启用它。检查是否选择了ComboBox值
我知道如何访问选定的值,以及如何检查是否选择了一个值 - 但只有在窗体关闭后才能完成这两项操作(使用“x”或使用“ok”按钮 - 这是禁用的)。
任何想法?
谢谢。
也许这样:
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox.SelectedIndex > -1)
{
buttonOK.Enabled = true;
}
}
默认情况下,组合框的选定索引是-1(组合框的名称,在选择另一个索引后不能重新选择),因此如果检查它不是-1,那么您知道已经选择了一个值。
然而,另一种选择和我使用的是,如果我总是希望选择一个值是使用DropDownStyle
属性并将其设置为DropDownList
。这种方式索引0是默认选择的,用户只能从列表中选择项目,而不是其他项目。
如果选择COMBOX盒可以使用下拉框选择的指数变化情况
添加到您的InitializeComboBox类
this.ComboBox1.SelectedIndexChanged +=
new System.EventHandler(ComboBox1_SelectedIndexChanged);
然后在选定的指数变化情况下,您可以检查
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox cbx= (ComboBox) sender;
Button1.Enabled = !string.IsNullOrEmpty(cbx.SelectedItem.ToString());
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == -1)
button1.Enabled = false;
else
button1.Enabled = true;
//or
//button1.Enabled = comboBox1.SelectedIndex == -1;
}
这对我来说已经有一段时间了,所以我不会写一个答案。但是你不能在UI对象所绑定的属性中检查它吗? – Kevin
您是否尝试过使用'ComboBox.SelectedIndexChanged'事件 –