| 

.NET C# Java Javascript Exception

3
Hallo zusammen,

ich habe hier ein Formular mit mehreren Panels, die je nach Ereignis sichtbar oder unsichtbar geschalten werden. In allen Panels will ich einen Inhalt anzeigen lassen, dazu gibts auch Buttons mit Datensatz vor/zurück, erster, letzter. Nun würde ich gerne noch das Scrollrad zusätzlich zu den Buttons benutzen. Mein Problem ist, dass ich z.b. "Handles Panel1.Mouseenter" und "Handles Panel1.MouseWheel" nicht zusammen bringe. Ich möchte damit erreichen, dass das Mousewheel-Ereignis nur dann ausgelöst wird, wenn der Mauszeiger über dem entsprechenden Panel steht.

IDE ist VB2005 Expr.

Vielen Dank für die Hilfe!
News:
11.05.2011
muffi 1,4k 1 9
2 Antworten
1
Jetzt nur mal ins Unreine gesprochen, aber ich würde beim MouseEnter() eine Variable o.ä. setzen, so dass du im MouseWheel Event abfragen kannst, welches Element als letztes geentert wurde. Wenn es nur ein Panel ist, dann setz eine Variable auf true wenn MouseEnter() und auf false bei MouseLeave().

Auf die schnelle würde ich nun im MouseWheel() Event nachschauen, ob die Variable gesetzt ist und wenn ja, mit der Funktion zum Blättern weitermachen. Wäre jetzt schnell und schmutzig gelöst.

Gibt bestimmt noch eine elegantere Lösung die dir die üblichen Verdächtigen, wie gfoidl, Floyd, Mario, Falk und Co. bestimmt nennen können. :-)
11.05.2011
Dustin Klein 2,9k 2 9
6
Im MouseEnter-Ereignis kannst du den Control-Objekt aktivieren.
Private Sub _MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.MouseEnter, Panel2.MouseEnter
CType(sender, Control).Select()
End Sub

Dann sollte das MouseWheel-Ereignis beim selektierten Control ausgelöst werden.
11.05.2011
Fredo 575 1 9
Klasse, das passt! Ich hab das Ganze noch mit MouseLeave verfeinert und es verhält sich so, wie es gedacht war. Danke!!!
muffi 11.05.2011
Wenn das die richtige Lösung war, wieso hast du dann meinen Beitrag markiert? Jetzt hast du Fredo um seine Reputation gebracht.
Dustin Klein 11.05.2011
Weil ich vorhin auf den falschen Haken geklickt habe, und konnte das aber nicht mehr rausnehmen. Dafür habe ich aber Dir eine Bewertung geklickt.
muffi 11.05.2011
Also ich meinte natürlich, bei Fredo die Bewertung geklickt. Schade, dass man den grünen Haken nicht ändern kann.
muffi 11.05.2011
Bekommt er halt von mir auch noch +1 :-) Vielleicht sieht das ja ein Admin und ändert es freundlicherweise. Oder Ihr schreibt eine nette Mail =)
Dustin Klein 11.05.2011
+1 von mir. Funktioniert das auch wenn ich ein UserControl anlege und darin z.b. ein eingebettetes Feld scrollen möchte. Dann wäre es ja eine iterative Übergabe des select.
smartic 12.05.2011

Stelle deine .net-Frage jetzt!