cs_Fyerrblad
Messages postés22Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention24 janvier 2008
-
6 nov. 2007 à 14:39
cs_Fyerrblad
Messages postés22Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention24 janvier 2008
-
9 nov. 2007 à 14:30
Salut tt le monde.
Je suis en train de créer un programme qui enregistre la position du curseur (X dans ListBox1 et Y dans ListBox2) en cliquant sur Button1.
Button2 sert à arrêter l'enregistrement.
Button3 déclenche deux timers (Timer2 lit le ListBox1 et Timer3 lit le ListBox2).
Tout marche bien, seulement, le mouvement de la souris se fait étape par étape. La souris bouge d'abord horizontalement, puis verticalement. Comment dois-je faire ?
Voici le code :
___________________________________________________________________________________________________
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ListBox1.Items.Add(Cursor.Position.X)
ListBox2.Items.Add(Cursor.Position.Y)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Stop()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Timer2.Start()
Timer3.Start()
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
For Each X As Integer In ListBox1.Items
Cursor.Position = New Point(X, Cursor.Position.Y)
System.Threading.Thread.Sleep(10)
Next X
Timer2.Stop()
End Sub
Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
For Each Y As Integer In ListBox1.Items
Cursor.Position = New Point(Cursor.Position.X, Y)
System.Threading.Thread.Sleep(10)
Next Y
Timer3.Stop()
End Sub
End Class
___________________________________________________________________________________________________
pneau
Messages postés258Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention27 octobre 20105 8 nov. 2007 à 09:40
une question bete !
pourquoi 2 timer ?
en fait je pense que lorsque time2 (associé à listbox1) effectue sa boucle, il monopolise le process tant qu'il n'est pas terminé. ce qui fait que ton y ne bouge pas...
puis lorsqu'il a finit, il effectue le code du timer3
il faudrait que tes 2 list box soient lues en meme temps
j'ai fait ce bout de code...
a toi de voir...
et je n'utilise qu'un seul timer
Private
Sub Timer2_Tick(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Timer2.Tick
' For Each X As Integer In ListBox1.Items
' Windows.Forms.Cursor.Position = New Point(X, ListBox2.Items(ListBox1.c()))
' System.Threading.Thread.Sleep(10)
' Next X
Dim nb
As
Long
Dim i
As
Long
nb = ListBox1.Items.Count
For i = 0
To
nb - 1Windows.Forms.Cursor.Position =
New Point(ListBox1.Items.Item(i), ListBox2.Items.Item(i))System.Threading.Thread.Sleep(10)
cs_Fyerrblad
Messages postés22Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention24 janvier 2008 7 nov. 2007 à 20:58
Salut.
Bon, en fait, quand je clique sur Button3, la souris fait le mouvement horizontal (Position X de la souris = ListBox1)
puis quand le mouvement horizontal est terminé, c'est seulement maintenant que le mouvement vertical (Position Y de la souris = ListBox2) commence.