Событие SelectedValueChange () при загрузке формы в приложении Windows Form - PullRequest
5 голосов
/ 11 июля 2011

У меня проблема с тем, что мое событие SelectedValueChanged () в ComboBox запускается во время загрузки моего приложения Windows Form.В настоящее время у меня также есть событие Form_Load (), которое загружает несколько ComboBox, включая этот, используя OleDbDataAdapters / DataTables / Fill () и т. Д.

Я предполагаю, что из-за моего метода Form_Load ()Событие SelectedValueChanged запускается из-за данных, заполняемых ComboBox.

Почему это происходит?

Ответы [ 3 ]

5 голосов
/ 11 июля 2011

В форме Загрузить событие перед загрузкой элементов в comboBox, отмените подписку на событие.После привязки данных снова подпишитесь на событие.

Form_Load(..)
{
     _comboBoxName.SelectedValueChanged -= _comboBoxName_SelectedValueChanged;

    // Load data to the combo box... 

    _comboBoxName.SelectedValueChanged += _comboBoxName_SelectedValueChanged;
}
3 голосов
/ 11 июля 2011

Это событие, вероятно, вызывается из-за данных, которые впервые заполняются в ComboBox.Лучшее рекомендуемое исправление - подписка на события после инициализации элементов управления.

Другим простым исправлением является назначение логического флага, когда форма полностью загружена.Этот флаг можно использовать для игнорирования любых вызовов вашего события до тех пор, пока форма не будет загружена (например, FormLoaded = true).

0 голосов
/ 07 ноября 2015
rbtalldivision_CheckedChanged(sender, e);
rbtAllSitecodes_CheckedChanged(sender, e);

Для вызова нескольких событий в Windows приложение должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...