Установка фокуса на другой элемент управления предотвращает изменение текущего значения элемента управления в VB.NET - PullRequest
0 голосов
/ 08 июля 2020

У меня есть ComboBox в приложении WinForms, написанном на VB. NET. В событии .SelectionChangeCommitted я хочу изменить фокус на другой c элемент управления, чтобы облегчить рабочий процесс пользователя. Однако, когда я это сделаю, изменение не сохраняется в исходном ComboBox, а значение и индекс возвращаются к исходным значениям.

Я использовал как myControl.Focus, так и myControl.Select

Combobox настроен следующим образом:

        With ChoosePartType
            .DisplayMember = "PartName"
            .DataSource = GetTable(qry) 'This custom function returns a DataTable with fields PartNum and PartName
            .ValueMember = "PartNum"
            .SelectedIndex = -1
        End With

Я предполагаю, что что-то в изменении фокуса приводит к короткому замыканию изменения свойства. Есть ли способ заставить это произойти до смены фокуса?

Примечание: похоже, проблема отличается от WInforms Combobox Событие SelectionChangeCommitted не всегда меняет SelectedValue

Подобно этому, но я не использую привязки данных: Ошибка привязки данных Combobox - не будет записывать значение, если программно теряется фокус

...