Forums Neueste Beiträge
 

PictureBox1_MouseWheel-Ereignis

14/02/2008 - 09:10 von Christoph | Report spam
Hallo,
in einem PictureBox-Steuerelement werden verschiedene Bilder angezeigt. Der
Bildwechsel erfolgt über einen Klick auf einen der beiden Buttons: nàchstes
bzw. vorheriges Bild. Nun würde ich gerne den Bildwechsel über
PictureBox1_MouseWheel-Ereignis steuern, was wesentlich eleganter wàre. Ich
finde zwar unter Ereignisen eines PictureBox-Steuerelement das
PictureBox1_MouseWheel-Ereignis, leider wird dieses Ereignis nicht ausgelöst,
auch wenn PictureBox den Fokus besitzt.
Könnte mir jemand diese unerfreuliche Phànomen erklàren?
Gruß
Christoph Michalski
 

Lesen sie die antworten

#1 Peter Götz
14/02/2008 - 10:10 | Warnen spam
Hallo Christoph,

in einem PictureBox-Steuerelement werden verschiedene
Bilder angezeigt. Der Bildwechsel erfolgt über einen Klick
auf einen der beiden Buttons: nàchstes bzw. vorheriges Bild.
Nun würde ich gerne den Bildwechsel über
PictureBox1_MouseWheel-Ereignis steuern, was wesentlich
eleganter wàre.



Für den Benutzer aber wohl eher ungewohnt, da mit dem
Mausrad bei den meisten Anwendungen ein Zoom-In bzw.
Zoom-Out ausgelöst wird.

Ich finde zwar unter Ereignisen eines
PictureBox-Steuerelement das
PictureBox1_MouseWheel-Ereignis,



Weil PictureBox1 von Control erbt. Das heisst aber
eben noch nicht, dass dieses Ereignis für die
Picturebox auch ausgelöst wird.


leider wird dieses Ereignis nicht ausgelöst,



So isses.

auch wenn PictureBox den Fokus besitzt.
Könnte mir jemand diese unerfreuliche Phànomen
erklàren?



Das MouseWheel-Ereignis wird für die Form ausgelöst,
wenn der Mauszeiger über der PictureBox liegt. Du
kannst also auf das Form_MouseWheel-Ereignis reagieren
und dort prüfen, ob sich der Mauszeiger im Bereich (e.x, e.y)
der PictureBox befindet.
Das könnte dann etwa so aussehen:

Private Sub Form1_MouseWheel _
(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs _
) Handles Me.MouseWheel

Dim R As New Region(PictureBox1.Bounds)
If R.IsVisible(e.X, e.Y) Then
Beep()
End If
End Sub

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen