Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MouseWheel

2 réponses
Avatar
Dan
BNonjour a tous.
je ne suis vraiement pas tres doué, j'ai un objet
image1 qui est une picture box
j'ai saisi :
Private Sub image1_MouseWheel(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles image1.MouseWheel

Dim aa = e.Delta

if aa > 0 then ....

End Sub

j'ai beau tourner ma mlette dans tous les sens rien ne se passe ,Sub
image1_MouseWheel est complétement ignoré,il doit me manquer qq chose,qu'en
pensez vous?

par ailleur a la place de e.Delta qui indiquerai 1 ou -1 serait il possible
de recuperer une valeur indiquant la mouvement exacte de la molette?

Merci d'avance de votre aide

2 réponses

Avatar
Patrice
Il semblerait que ma réponse précédente n'ait pas été publié. En cherchant
un peu je vois qu'il faut donner explicitement le focus au contrôle par
programmation par exemple quand la souris passe dessus car le picturebox
n'accepte généralement pas les entrées.

A ce moment l'évènement MouseWheel se produira sur la PictureBox (sinon
c'est le formulaire qui le récupère).

Tu peux juste tester le signe (chez moi j'ai -20 ou 20 à chaque mouvement
élémentaire).

Perso, je ferais plutôt le retaillage à la souris, la roulette étant
utilisée généralement plus pour un défilement que pour un retaillage. Cela
me parait plus conforme aux habitudes Windows...


--
Patrice

"Dan" a écrit dans le message de groupe de discussion
: 48b50450$0$290$
BNonjour a tous.
je ne suis vraiement pas tres doué, j'ai un objet
image1 qui est une picture box
j'ai saisi :
Private Sub image1_MouseWheel(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles image1.MouseWheel

Dim aa = e.Delta

if aa > 0 then ....

End Sub

j'ai beau tourner ma mlette dans tous les sens rien ne se passe ,Sub
image1_MouseWheel est complétement ignoré,il doit me manquer qq
chose,qu'en pensez vous?

par ailleur a la place de e.Delta qui indiquerai 1 ou -1 serait il
possible de recuperer une valeur indiquant la mouvement exacte de la
molette?

Merci d'avance de votre aide


Avatar
Dan
Merci,c'est tout a fait ca!
c'est pourtant simple mais je n'ai trouvé nul part une explication.
je suis ravi d'avoir enfin reussi.
voici un bref resumé de la methode , ce serai bien de le metre qq part
pour aider d'autres comme moi.
soit une picturebox que lon nome imagei
pour detecter les mouvements de la molette :
on ajoute le code:
Private Sub image1_MouseMove(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles image1.MouseMove

image1.Focus() 'pour donner le focus sur image1 indispensable pour
mousewheel

End Sub

Private Sub image1_MouseWheel(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles image1.MouseWheel

'Private Sub image1_MouseWheel(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles image1.MouseWheel

Dim aa = e.Delta

If aa > 0 Then

...code a incerer ici si molette vers le haut

ElseIf aa < 0 Then

...code a incerer ici si molette vers le bas

End If

End Sub




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Il semblerait que ma réponse précédente n'ait pas été publié. En cherchant
un peu je vois qu'il faut donner explicitement le focus au contrôle par
programmation par exemple quand la souris passe dessus car le picturebox
n'accepte généralement pas les entrées.

A ce moment l'évènement MouseWheel se produira sur la PictureBox (sinon
c'est le formulaire qui le récupère).

Tu peux juste tester le signe (chez moi j'ai -20 ou 20 à chaque mouvement
élémentaire).

Perso, je ferais plutôt le retaillage à la souris, la roulette étant
utilisée généralement plus pour un défilement que pour un retaillage. Cela
me parait plus conforme aux habitudes Windows...


--
Patrice

"Dan" a écrit dans le message de groupe de
discussion : 48b50450$0$290$
BNonjour a tous.
je ne suis vraiement pas tres doué, j'ai un objet
image1 qui est une picture box
j'ai saisi :
Private Sub image1_MouseWheel(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles image1.MouseWheel

Dim aa = e.Delta

if aa > 0 then ....

End Sub

j'ai beau tourner ma mlette dans tous les sens rien ne se passe ,Sub
image1_MouseWheel est complétement ignoré,il doit me manquer qq
chose,qu'en pensez vous?

par ailleur a la place de e.Delta qui indiquerai 1 ou -1 serait il
possible de recuperer une valeur indiquant la mouvement exacte de la
molette?

Merci d'avance de votre aide