Laden...

Mouseenter/Mouseleave - wie geht's richtig?

Erstellt von GeneVorph vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.319 Views
G
GeneVorph Themenstarter:in
180 Beiträge seit 2015
vor 6 Jahren
Mouseenter/Mouseleave - wie geht's richtig?

Hallo,

ich scheitere wiedermal an einer "ganz einfachen" Aufgabe:

eine windows-Form mit einem Button (btnCancel). Bewege ich den Cursor über den Button, soll der Mouseenter-Event gefeuert werden, bzw. der Mouseleave beim Verlassen. Mein Vorhaben hat keinen konkreten praktischen Bezug - ich wollte lediglich mit den Mouse-Events etwas experimentieren.

Mein Code dazu ist simpel:


 private void btnCancel_MouseEnter(object sender, EventArgs e)
        {
            MessageBox.Show("Bist drin");
        }

        private void btnCancel_MouseLeave(object sender, EventArgs e)
        {           
            MessageBox.Show("bist drauß");
        }

Das Problem: die beiden MessageBoxes erscheinen direkt hintereinander, also bereits wenn der Cursor in den Bereich der Control kommt.

Was mich verwirrt: ich hätte erwartet, dass das -enter-Event wirklich nur zum Tragen kommt, wenn der Cursor auf das betreffende Control kommt. Analog dazu: das -leave-Event wird erst gefeuert, wenn der Compuffter feststellt, dass der Cursor sich eben nicht mehr im Bereich des Buttons befindet.

Offensichtlich ist das nicht so:

  • wie ich auch hier in der Forumsuche feststellen musste, ist das scheinbar doch kein so simples Unterfangen, auch wenn sich mir der Grund dafür nicht eben erschließt. So z. B. dieser Artikel:
    MouseEnter / MouseLeave Event

Ich bin nicht sicher, wie ich das auf meinen Code anwenden kann.

Oder versuche ich was zu machen, von dem ich nur denke, dass es so funktioniert und mouseenter und mouseleave sind einfach nur die falschen Events?

Bitte um Aufklärung,
vielen Dank

Vorph

16.842 Beiträge seit 2008
vor 6 Jahren

Gib den Status in ner TextBox aus und nicht in einer Message Box.
Durch die MessageBox erfolgt sofort ein Leave, weil sich ja der Scope durch das Show ändert.

Auf welche Events Du hier hörst, wird mit diesem Micro Code Snippet nicht ersichtlich.

G
GeneVorph Themenstarter:in
180 Beiträge seit 2015
vor 6 Jahren
[GELÖST] Update DataTable

Danke, Abt. Jetzt komme ich mir unheimlich, äh, blöd vor^^ Klar, die MessageBox ist das "Problem"! Hab's grade mit nem Label getestet, dass je nach Position des Cursors einen Text ausgibt: es funktioniert...natürlich. Meine Welt ist wieder OK - mouseenter/-leave tut was es soll 😃 Danke.