Контекстное меню Сбрасывает выбранный индекс ComboBox
-
09-06-2019 - |
Вопрос
У меня есть контекстное меню, которое отображается после того, как пользователь щелкает правой кнопкой мыши по выпадающему списку.Когда пользователь выбирает пункт в контекстном меню, открывается форма с помощью ShowDialog()
способ.
If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
LoadComboBoxes()
End If
Когда эта форма закрывается, я обновляю все данные в выпадающих списках родительской формы.Однако, когда это происходит, поле со списком, которое открыло ContextMenu, сбрасывается, чтобы иметь выбранный индекс, равный -1, но другие выбранные индексы других полей со списком остаются неизменными.
Как мне предотвратить сброс выпадающего списка, открывшего контекстное меню?
Решение
Одним из способов справиться с этим было бы использовать всплывающее событие контекстного меню, чтобы захватить выбранный индекс выпадающего списка, запускающего меню.Когда диалоговая форма закроется, сбросьте выбранный индекс.
Другие советы
Я догадался об этом.
Я создал метод, который передавал Контекстное меню.SourceControl() свойство по ссылке, чтобы я мог манипулировать элементом управления, который вызывал ContextMenu.В начале применения метода я получил следующее Выбранное значение из выпадающего списка и перезагрузил данные в выпадающих списках.Затем я устанавливаю Выбранное значение к значению, которое я получил в начале метода.
Спасибо тебе, Давек, за то, что указал мне правильное направление.