vb.net / winform - ComboBox SelectedIndexChanged? - PullRequest
2 голосов
/ 28 января 2011

Когда моя форма загружается, перед заполнением и выбором ComboBox запускается это событие (SelectedIndexChanged). Как я могу предотвратить выполнение кода внутри этого события до полной загрузки формы? Я пытался проверить на .SelectedIndex, но он возвращает 0.

Ответы [ 3 ]

1 голос
/ 03 октября 2011

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

Что вам нужно сделать, это посмотреть на использование addhandler и removehandler.

Например:

ваша подпрограмма с измененным индексом в комбобоксе называется «indexagedroutine», а ваш комбобокс называется «mycombobox».

При запуске:

addhandler mycombobox.selectedindexchanged, addressof indexchangedroutine

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

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

В событииесли вам необходимо выполнить обновление (например, таймер обновления), вы можете вызвать removehandler вместо addhandler, и это разъединит связь между логикой и событием элемента управления.Вы можете сделать свое обновление, и когда вы закончите, addhandler может быть вызван еще раз, чтобы связать их обратно для использования.

Надеюсь, это вам поможет.Может показаться, что здесь задействовано больше кода, но этот метод избегает использования хакерских исправлений, таких как флаги «здесь», в вашей подпрограмме selectedindexchange.

1 голос
/ 28 января 2011

в vb design / editor установите combobox enabled property в false, а затем добавьте после загрузки всего в комбинированный список combobox1.enabled=true

, что поможет!

0 голосов
/ 30 января 2011

Do me.Validate.children работал

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