Modales Dialogverhalten bei BorderStyle=None

  • C#
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von TRiViUM.

    Modales Dialogverhalten bei BorderStyle=None

    Hallo liebe Community,

    ich möchte gern einen Dialog nach meinen Design-Vorstellungen nutzen, weshalb ich das Form auf BorderStyle=None gestellt habe.
    Damit habe ich die Möglichkeit, eine eigene Titelleiste einzubringen - so weit, so gut.

    Nun gibt es allerdings ein Problem, wenn ich den Dialog modal aufrufe.

    Normalerweise macht ein modaler Dialog (mit Blinken) auf sich aufmerksam, wenn man das aufrufende Form anklickt.

    Dieses Verhalten möchte ich nun auch in meinem Dialog haben.
    Sobald man allerdings BorderStyle=None einstellt, ist dies nicht mehr automatisch der Fall.

    Ich habe jetzt angefangen herauszufinden, welche Windows-Meldungen das Form empfängt

    C#-Quellcode

    1. protected override void WndProc(ref Message m)
    2. {
    3. base.WndProc(ref m);
    4. if (Enum.TryParse(m.Msg.ToString(), out WindowsMessages msgID)) Console.WriteLine($"{(int)msgID}: {msgID}");
    5. else Console.Write($"{m.Msg}: --- UNKNOWN ---");
    6. if (m.Msg == (int)WindowsMessages.WM_NCACTIVATE) tFlashing.Start();
    7. }

    WindowsMessages ist hier eine Enumeration aller bekannten IDs (siehe Demo-Projekt im Anhang).
    Allerdings bin ich mir unsicher, ob das, was ich hier bräuchte, überhaupt mit dabei ist.
    Die Meldung WM_NCACTIVATE geht zwar schon mal ziemlich in die Richtung, ist aber leider nicht die Richtige.

    Hat einer von Euch evtl. eine Ahnung, wie man das modale Verhalten eines Dialogs auch auf einen Dialog mit BorderStyle=None übertragen kann?

    Im Anhang ein Beispielprojekt, wo ich meine bisher beste Lösung implementiert habe.
    Ist aber leider noch nicht so, wie ich es möchte, weil es teilweise auch anfängt zu blinken, wenn ich nicht das aufrufende Form anklicke, sondern aus einem ganz anderen Anwendungsfenster komme und dann mein Form anklicke.

    Danke für Eure Antworten! ^^
    Dateien
    • ModalDialogs.zip

      (40,48 kB, 62 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „TRiViUM“ ()

    Schnelle Internetsuche ohne Verifizierungsmöglichkeit aufgrund von Zeitmangel: stackoverflow
    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: Danke für die Info, nur leider scheint es für BorderStyle=None nicht zu funktionieren :(

    Ich vermute, dass ich mir das "blinken" selber in form von Abändern der Hintergrundfarbe etc. bauen muss.
    Das Blinken ist nicht das Problem und ja auch schon fertig, nur fehlt mir der dafür benötigte Trigger, wann es blinken soll und wann nicht...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „TRiViUM“ ()