myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Mouseenter/Mouseleave - wie geht's richtig?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Mouseenter/Mouseleave - wie geht's richtig?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
GeneVorph GeneVorph ist männlich
myCSharp.de-Mitglied

Dabei seit: 09.02.2015
Beiträge: 124
Entwicklungsumgebung: Visual Studio 2013


GeneVorph ist offline

Mouseenter/Mouseleave - wie geht's richtig?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

C#-Code:
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
05.09.2017 17:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
05.09.2017 17:43 Beiträge des Benutzers | zu Buddylist hinzufügen
GeneVorph GeneVorph ist männlich
myCSharp.de-Mitglied

Dabei seit: 09.02.2015
Beiträge: 124
Entwicklungsumgebung: Visual Studio 2013

Themenstarter Thema begonnen von GeneVorph

GeneVorph ist offline

[GELÖST] Update DataTable

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
05.09.2017 21:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 3 Jahre.
Der letzte Beitrag ist älter als 3 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 31.10.2020 08:09