Frage

Ich habe ein Kontextmenü, das angezeigt wird, nachdem ein Benutzer mit der rechten Maustaste auf eine ComboBox geklickt hat.Wenn der Benutzer ein Element im Kontextmenü auswählt, wird ein Formular mit dem aufgerufen ShowDialog() Methode.

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

Wenn dieses Formular geschlossen wird, aktualisiere ich alle Daten in den ComboBoxen im übergeordneten Formular.Wenn dies jedoch geschieht, wird die ComboBox, die das Kontextmenü geöffnet hat, auf einen ausgewählten Index von -1 zurückgesetzt, die anderen ausgewählten Indizes der anderen ComboBoxen bleiben jedoch gleich.

Wie verhindere ich, dass die ComboBox, die das Kontextmenü geöffnet hat, zurückgesetzt wird?

War es hilfreich?

Lösung

Eine Möglichkeit, damit umzugehen, besteht darin, das Popup-Ereignis des Kontextmenüs zu verwenden, um den ausgewählten Index der Combobox abzurufen, die das Menü startet.Wenn das Dialogformular geschlossen wird, setzen Sie den ausgewählten Index zurück.

Andere Tipps

Ich habe es herausgefunden.

Ich habe eine Methode erstellt, die das übergeben hat ContextMenu.SourceControl() Eigenschaft durch Referenz, damit ich das Steuerelement manipulieren konnte, das das ContextMenu aufrief.Am Anfang der Methode habe ich das bekommen Ausgewählter Wert der ComboBox und die Daten in den ComboBoxen neu geladen.Ich habe dann das eingestellt Ausgewählter Wert auf den Wert, den ich zu Beginn der Methode erhalten hatte.

Vielen Dank, DaveK, dass du mich in die richtige Richtung gelenkt hast.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top