我在寫一個包含一些按鈕和組合框的表單。 默認情況下,「確定」按鈕處於禁用狀態,我希望僅在選擇實際值(不是組合框名稱)後啓用它。檢查是否選擇了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'事件 –