Menu de contexto redefine SelectedIndex do ComboBox
-
09-06-2019 - |
Pergunta
Eu tenho um ContextMenu que é exibido depois que um usuário clica com o botão direito em um ComboBox.Quando o usuário seleciona um item no menu de contexto, um formulário é aberto usando o ShowDialog()
método.
If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
LoadComboBoxes()
End If
Quando esse formulário é fechado, atualizo todos os dados nas ComboBoxes do formulário pai.Porém, quando isso acontece o ComboBox que abriu o ContextMenu é redefinido para ter um índice selecionado de -1 mas os demais índices selecionados dos outros ComboBoxes permanecem os mesmos.
Como evito que o ComboBox que abriu o menu de contexto seja reiniciado?
Solução
Uma maneira de lidar com isso seria usar o evento Popup do menu de contexto para capturar o índice selecionado da caixa de combinação que inicia o menu.Quando o formulário de diálogo fechar, redefina o índice selecionado.
Outras dicas
Eu descobri.
Eu criei um método que passou pelo ContextMenu.SourceControl() propriedade por referência para que eu pudesse manipular o controle que chamou ContextMenu.No início do método, obtive o Valor selecionado do ComboBox e recarregar os dados nos ComboBoxes.Eu então configurei o Valor selecionado ao valor que obtive no início do método.
Obrigado DaveK por me apontar na direção certa.