Esc-Verhalten bei Dialog mit ContextMenu

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Esc-Verhalten bei Dialog mit ContextMenu

    Moin Leute.
    Folgendes Problem:
    Ich rufe einen modalen Dialog mit OK- und Cancel-Funktionalität auf.
    In diesem Dialog gibt es ein ContextMenu.
    Wenn das ContextMenu angezeigt wird und ich drücke Esc wird das ContextMenu und der Dialog geschlossen.
    Gibt es eine Möglichkeit, dass dabei nur das ContextMenu, nicht aber der Dialog geschlossen wird?
    Das ContextMenu.Closing und .Closed-Event bringen nix, da ist .DialogResult = None.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Kann ich nicht nachvollziehen. Habe im Mainform

    VB.NET-Quellcode

    1. Using Dialog As New Form1
    2. Dialog.ShowDialog(Me)
    3. End Using
    und im Dialog einen Button1 mit DialogResult.Cancel, auf dem DialogForm bei CancelButton Button1 stehen. Und ein ContextMenuStrip, zugeordnet an den Dialog und an einen weiteren DummyButton. Wenn ich den CMS durch Rechtsklick aufrufe (egal, ob über das Form oder den DummyButton) und auf ESC klicke, verschwindet der CMS, der Dialog bleibt. Drücke ich erneut ESC, schließt sich erst der Dialog. Was mache ich anders als Du?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Was mache ich anders als Du?
    Das war die entscheidende Frage. :thumbup:
    Bei mir ist .KeyPreview = True und beim, Drücken von Esc wird der Dialog beendet.
    Der Dialog wird dynamisch und statisch aufgerufen, der Unterschied ist die Behandlung der Esc-Taste.
    Ich musste das "Unterschieds"-Flag im KeyUp-Event der Form ver-AndAlso-en und feddich.
    Danke.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Akanel Wir haben halt kompatible Problemlösungs-Strategien. 8o
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!