| |
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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! 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
|
|