Announcement

Collapse
No announcement yet.

Fenster aktiv halten, wenn die Maus drüber ist

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fenster aktiv halten, wenn die Maus drüber ist

    Hallo zusammen,

    ich habe ein kleines Fenster mit einigen Elementen (Label und TextBox) gebaut.
    Nun möchte ich, dass das Fenster aktiv ist, wenn ich die Maus auf das Fesnter bewege. Und dass das Fenster nach einigen Sekunden (über Thread) verschwindet, wenn ich das fenster verlasse.

    Welches Event kann ich für die Maus nehmen? Wenn ich MouseEnter / MouseLeave verwende, wird dieses Event auch ausgelöst, wenn ich im gleichen Fenster bleibe, jedoch über Label / TextBox gehe ...

    Für Eure Ideen / Vorschläge schönen Dank im Voraus!

  • #2
    Vielleicht MouseEnter/MouseLeave aller Controls verdrahten?
    Kann ja ruhig immer der gleiche EventHandler sein.

    Ansonsten fällt mir nur ein globaler Window Hook für die Maus ein.
    Da müßtest du aber per PInvoke an die Windows API das kann .NET nicht (noch nicht?) selbst.

    Comment


    • #3
      Originally posted by Ralf Jansen View Post
      Vielleicht MouseEnter/MouseLeave aller Controls verdrahten?
      Kann ja ruhig immer der gleiche EventHandler sein.
      Meinst Du, alle Events von anderen Elementen an das Hauptfenster schicken?

      Comment


      • #4
        Meinst Du, alle Events von anderen Elementen an das Hauptfenster schicken?
        Keine Ahnung ob ich das meine Ich würde das aber nicht so ausdrücken.

        Du hast doch schon einen MouseLeave/MouseEnter EventHandler. Also kannst du den doch einfach mit allen MouseLeave/MouseEnter Events aller Controls verdrahten?

        Im Code ist das simpel

        Code:
        // Im Konstruktor der Form AttachEvents(this) aufrufen; Events nicht im Designer verdrahten sonst sind die doppelt!! 
        public void AttachEvents(Control control)
        {
            foreach(Control subcontrol in control.Controls)
                AttachEvents(subcontrol);
        
            control.MouseEnter += Form1_MouseEnter;
            control.MouseLeave += Form1_MouseLeave;
        }

        Comment

        Working...
        X