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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top