Возможно ли запустить событие ComboBox SelectedIndex Changed, даже если старый и новый индексы одинаковы?



У меня есть сценарий, в котором мне нужно запустить событие SelectedIndexChanged combox winform, даже если старый и новый индексы одинаковы.. Я не могу использовать SelectionChangeCommited, потому что значения задаются программно .. и его не уволят. Может ли он случайно заставить "SelectedIndexChanged" стрелять, даже если старый и тот же индекс одинаковы?

597   2  

2 ответов:

Ничто не мешает вам вызвать обработчик событий напрямую:

comboBox1_SelectedIndexChanged(comboBox1, new EventArgs()); // or (null, null)

Но решение atomaras является лучшим (более приятным) способом сделать это.

Я сам не люблю использовать стандартные компоненты в более-менее серьезных программах. Вместо этого я подклассирую все стандартные компоненты с самого начала и добавляю к ним функциональность, как только мне это нужно, без необходимости что-либо менять в существующих формах.

В этом случае я бы добавил public event riser OnSelectedIndexChanged для выполнения события (для запуска кода внутри обработчик событий программно ).

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

Comments

    Ничего не найдено.