Domanda

Ho un ContextMenu che viene visualizzato dopo che un utente fa clic con il pulsante destro del mouse su un ComboBox.Quando l'utente seleziona un elemento nel menu contestuale, viene visualizzato un modulo utilizzando il comando ShowDialog() metodo.

If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    LoadComboBoxes()
End If

Quando il modulo viene chiuso, aggiorno tutti i dati nei ComboBox del modulo principale.Tuttavia, quando ciò accade, il ComboBox che ha aperto il ContextMenu viene reimpostato per avere un indice selezionato pari a -1, ma gli altri indici selezionati degli altri ComboBox rimangono gli stessi.

Come posso impedire il ripristino del ComboBox che ha aperto il menu contestuale?

È stato utile?

Soluzione

Un modo per gestire questo problema sarebbe utilizzare l'evento Popup del menu contestuale per acquisire l'indice selezionato della casella combinata che avvia il menu.Quando il modulo di dialogo si chiude reimposta l'indice selezionato.

Altri suggerimenti

L'avevo capito.

Ho creato un metodo che ha superato il file ContextMenu.SourceControl() per riferimento in modo da poter manipolare il controllo che chiamava ContextMenu.All'inizio del metodo, ho ottenuto il file Valore selezionato del ComboBox e ricaricato i dati nei ComboBox.Ho quindi impostato il Valore selezionato al valore che avevo ottenuto all'inizio del metodo.

Grazie DaveK per avermi indicato la giusta direzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top