确定是否在C#ComboBox中选择了项目

时间:2013-11-18 19:54:23

标签: c# combobox

我正在开发一个Windows窗体应用程序并从此代码加载列表:

private void showList()
    {
        TeamTableAdapter teamAdapter = new TeamTableAdapter();
        lstTeamName.DataSource = teamAdapter.GetTeamsActive();
        lstTeamName.DisplayMember = "TeamName";
        lstTeamName.ValueMember = "TeamID";

    }

如果用户选择其中一个项目,我想启用一个按钮。我应该将代码放入什么事件中。我是以下代码,但事件似乎在用户点击列表之前触发。

 private void lstTeamName_Click(object sender, EventArgs e)
    {
        if (lstTeamName.SelectedIndex > -1)
            btnImportXML.Enabled = true;

    }

我将代码移动到SelectedIndexChange事件,但在用户选择项目并且selectedIndex为0之前,它仍然会触发。

2 个答案:

答案 0 :(得分:2)

您不希望绑定到Click事件,而是绑定到SelectedIndexChanged事件。您只需双击设计器中的Control即可完成此操作。

答案 1 :(得分:1)

我同意你不想绑定Click,因为这可能会过早发生。

我建议您查看DropDownStyle属性。 http://msdn.microsoft.com/en-us/library/system.windows.forms.comboboxstyle(v=vs.110).aspx。如果您将其设置为DropDownList,那么SelectedItemChanged将会触发,SelectedIndex可能会> -1

如果您将其保留为默认DropDown,则可能需要使用TextChanged并检查Text属性。