WinForms ComboBox - 如何检查值

时间:2010-10-24 14:50:17

标签: c# winforms combobox

我正在使用C#.NET构建WinForms应用程序

WinForms应用程序有一个ComboBox,DropDownStyle设置为DropDownList。启动App时,我读取了一个XML文件来填充ComboBox的值。而且,此时,默认情况下,ComboBox中未选择任何内容。因此,禁用“更改”和“删除”按钮。

现在,当用户选择一个值时,我希望启用“更改”和“删除”按钮。到目前为止,我已经完成了(虽然,我不确定我是否以正确的方式完成了它)。

我已经在SelectionChangeCommitted事件中编写了代码。

private void cbList_SelectionChangeCommitted(object sender, EventArgs e)
{
    if (cbList.SelectedItem != null)
    {
        this.btnModify.Enabled = true;
        this.btnRemove.Enabled = true;
    }
    else
    {
        this.btnModify.Enabled = false;
        this.btnRemove.Enabled = false;
    }
}

现在,当我选择一个值时...按钮被启用(如预期的那样)。然后用户单击“删除”按钮,我们删除所选值。现在,cbList中没有选择任何内容,但仍然启用了按钮?

我检查是否选择了值然后启用/禁用按钮的功能/事件是什么。

1 个答案:

答案 0 :(得分:1)

目前,没有Visual Studio,所以我不记得我们有哪些事件。但你可以做到这一点,

 private void CheckButtons()
    {

        if (cbList.SelectedItem != null)
        {
            this.btnModify.Enabled = true;
            this.btnRemove.Enabled = true;
        }
        else
        {
            this.btnModify.Enabled = false;
            this.btnRemove.Enabled = false;
        }
    }

并在事件中使用您的func

private void cbList_SelectionChangeCommitted(object sender, EventArgs e)
{
CheckButtons();
}

如你所说,删除后,按钮仍然可见,所以你可以在删除功能之后放置CheckButtons()函数,如

DeleteX();
CheckButtons();