我正在开发一个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之前,它仍然会触发。
答案 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
属性。