Winforms ComboBox SelectedValueChange событие - PullRequest
4 голосов
/ 05 ноября 2008

Как предотвратить выполнение кода в событии SelectedValueChange в выпадающем списке при его первой загрузке? Мне нужно, чтобы код выполнялся, когда пользователь выбрал новое значение.

Ответы [ 3 ]

10 голосов
/ 25 декабря 2008

Если вы хотите, чтобы какой-то код выполнялся только тогда, когда пользователь изменяет комбинированный список, вы можете подписаться на SelectionChangeCommitted вместо SelectionChanged. «SelectionChangeCommitted» не вызывается при программном изменении выбора в выпадающем списке.

3 голосов
/ 05 ноября 2008

У вас есть несколько вариантов.

  1. Вместо того, чтобы позволить разработчику подключить обработчик событий, вы можете сделать это самостоятельно после загрузки

  2. Вы можете установить флаг в своем приложении для «загрузки» и поместить код в событие SelectedValueChange, чтобы проверить! Loading перед продолжением.

Лично я бы просто добавил обработчик после загрузки, если он вызывает проблемы.

0 голосов
/ 25 декабря 2008

Я предпочитаю событие SelectedIndexChanged, поскольку его поведение, кажется, лучше моделирует поведение базового Win32 API, делая его предсказуемым.

Некоторые из более эзотерических событий, предлагаемых элементами управления, просто не моделируют поведение, которое можно ожидать от их имени.

...