2013-11-18 3 views
1

Я занимаюсь разработкой приложений Windows Forms и загрузить список из этого кода:определить, если элемент выбран в C# ComboBox

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.

+3

Может быть, 'SelectedValueChanged' или' SelectedIndexChanged'? Есть много событий на выбор: http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox_events.aspx – David

ответ

2

Вы не хотите связываться с Click события, но к SelectedIndexChanged событию. Вы должны сделать это, просто дважды щелкнув мышью на элементе управления в дизайнере.

+0

Я переместил свой код в событие SelectedIndexChange, но он все еще срабатывает перед пользователем выбирает элемент, а selectedIndex равен 0. – Paul

+0

Вы подключили обработчик событий? – Wjdavis5

+0

Какая версия Vs вы используете? – Wjdavis5

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 собственности.

Смежные вопросы