| |
VB.NET - FortgeschritteneMouseEnter + MouseLeave nicht in erwarteter Reihenfolge bei AddHandler | | | Autor: Yammi900 | Datum: 21.09.16 07:20 |
| Hallo Leute,
ich ärgere mich gerade mit folgendem Problem rum:
Meine Kunden möchten über 35 Buttons frei konfigurierbar und mit dahinter liegender Benutzerverwaltung Dateien aufrufen (bitte nicht fragen warum, der Kunde ist König...). Wenn die Maus über einem Button ist soll solange die Beschriftung fett erscheinen und in der Statuszeile die aufrufbare Datei angezeigt werden.
Soweit kein Problem, das ist einfach erledigt mit den MouseEnter- und MouseLeave-Ereignissen. Eigentlich, wenn ich jedem Button direkt einen Ereignis-Handler im Coding zuweise. Da ich nun aber nicht 35 mal das Gleiche ins Coding malen möchte und die Anzahl der Buttons sich auch verändern könnte, war die Alternative über die Buttons zu iterieren und die Event-Handler per AddHandler zuzuweisen. Und nun kommt's:
Mit Event-Handler im Coding habe ich bei der Mausbewegung z.B.
-Button1.MouseEnter
-Button1.MouseLeave
-Button2.MouseEnter
-Button2.MouseLeave
usw.
Weise ich hingegen per AddHandler die Event-Handler zu bekomme ich
-Button1.MouseEnter
-Button2.MouseEnter
-Button1.MouseLeave
-Button3.MouseEnter
-Button2.MouseLeave.
Total schräg, ein neues MouseEnter kommt vor dem MouseLeave des vorherigen Buttons. Ein bischen scheint es auch von der Geschwindigkeit abzuhängen mit der die Maus bewegt wird, aber selbst wenn diese gaaanz langsam bewegt wird kommt es zu diesem Problem.
Hat jemand eine Idee?
Gruß,
Chris | |
Re: MouseEnter + MouseLeave nicht in erwarteter Reihenfolge bei AddHandler | | | Autor: effeff | Datum: 21.09.16 11:40 |
| Private Sub MouseEnter(sender As Object, e As System.EventArgs) Handles _
Button1.MouseEnter, Button2.MouseEnter, Button3.MouseEnter, _
Button4.MouseEnter, Button5.MouseEnter
Dim btn As Button = DirectCast(sender, Button)
btn.Font = New Font(btn.Font, FontStyle.Bold)
End Sub
Private Sub MouseLeave(sender As Object, e As System.EventArgs) Handles _
Button1.MouseLeave, Button2.MouseLeave, Button3.MouseLeave, _
Button4.MouseLeave, Button5.MouseLeave
Dim btn As Button = DirectCast(sender, Button)
btn.Font = New Font(btn.Font, FontStyle.Regular)
End Sub EALA FREYA FRESENA | |
Re: MouseEnter + MouseLeave nicht in erwarteter Reihenfolge bei AddHandler | | | Autor: minimalist | Datum: 21.09.16 18:17 |
| Das wird dir vielleicht helfen:
Public Class Form1
Dim button As New Button
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each Button As Button In Me.Controls
AddHandler Button.MouseEnter, AddressOf Enter
AddHandler Button.MouseLeave, AddressOf Leave
Next
End Sub
Shadows Sub Enter(sender As Object, e As EventArgs)
Dim myFont As System.Drawing.Font
myFont = New System.Drawing.Font("Sans-Serif", 8.5, FontStyle.Bold Or _
FontStyle.Italic)
sender.font = myFont
End Sub
Shadows Sub Leave(sender As Object, e As EventArgs)
Dim myFont As System.Drawing.Font
myFont = New System.Drawing.Font("Sans-Serif", 8.5, FontStyle.Regular)
sender.font = myFont
End Sub
End Class spiel damit rum und pass es an deinen code an. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|