Call button1_MouseDown(Sender, e) Call button1_MouseUp(Sender, e)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
quand je lance le prog je peux avec la souris
déclencher le mouseup et le mousedown du bouton
Si tu mets des boutons c'est pour appuyer dessus
Private Sub move_button() If Button1.Text = "appuyer" Then Button1.Text = "relever" Else Button1.Text = "appuyer" End If End Sub
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick 'Simule un bouton de sourie gauche Dim d As New MouseEventArgs(Windows.Forms.MouseButtons.Left, 1, 0, 0, 0) Button1_MouseDown(sender, d) End Sub Private Sub Button1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown 'Test si l'évènement est une simulation 'dans l'exemple j'ai considéré que si le sender n'est pas le bouton lui-même, c'est une simulation Dim simulDown As Boolean = (sender Is Nothing) OrElse (Not TypeOf sender Is Button) OrElse (CType(sender, Button).Name <> "Button1") 'Si c'est une simulation, on redessine le bouton avec un style enfoncé '(Attention, il faudra adapter si le bouton à une image) If simulDown Then ButtonRenderer.DrawButton(System.Drawing.Graphics.FromHwnd(Button1.Handle), New Rectangle(0, 0, Button1.Width, Button1.Height), Button1.Text, CType(Button1.Font.Clone, Font), True, VisualStyles.PushButtonState.Pressed) End If 'Ici on place l'action à effectuer Console.WriteLine("Button1_MouseDown") 'Si c'est une simulation, on simule le bouton de sourie relaché If simulDown Then Threading.Thread.Sleep(1000) 'J'ai volontairement fait une petite pause pour que l'utilisateur ai le temps de voir Button1_MouseUp(sender, e) End If End Sub Private Sub Button1_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp 'Test si l'évènement est une simulation 'dans l'exemple j'ai considéré que si le sender n'est pas le bouton lui-même, c'est une simulation Dim simulUp As Boolean = (sender Is Nothing) OrElse (Not TypeOf sender Is Button) OrElse (CType(sender, Button).Name <> "Button1") 'Ici on place l'action à effectuer Console.WriteLine("Button1_MouseUp") 'Si c'est une simulation, on force le bouton à se redessiner If simulUp Then Me.Button1.Invalidate() End If End Sub
quand j'appuie sur le bouton j'affiche une
image de bouton appuyé et aussi une liste
de nombre aléatoire avec un timer
tant que le bouton est appuyé les nombres
défile au relevé du bouton je stop le timer
simuler le tout
j'espère etre clair enfin
Private rnd As New Random 'Timer qui effectue une action tant que le bouton est appuyé Private Sub TimerAction_Tick(sender As System.Object, e As System.EventArgs) Handles TimerAction.Tick Me.Label1.Text = Now.Second & ":" & Now.Millisecond.ToString End Sub 'Timer qui simule un appui toutes les x secondes (juste pour exemple) Private Sub TimerSimul_Tick(sender As System.Object, e As System.EventArgs) Handles TimerSimul.Tick Dim args As New MouseEventArgs(Windows.Forms.MouseButtons.Left, 1, 0, 0, 0) Button1_MouseDown(sender, args) End Sub 'Timer lancé lors d'un MouseDown simulé Private Sub TimerDown_Tick(sender As Object, e As System.EventArgs) Handles TimerDown.Tick 'Arrête le timer Me.TimerDown.Stop() 'Simule le bouton de sourie relaché Dim args As New MouseEventArgs(Windows.Forms.MouseButtons.Left, 1, 0, 0, 0) Button1_MouseUp(sender, args) End Sub Private Sub Button1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown 'Test si l'évènement est une simulation 'dans l'exemple j'ai considéré que si le sender n'est pas le bouton lui-même, c'est une simulation Dim simulDown As Boolean = (sender Is Nothing) OrElse (Not TypeOf sender Is Button) OrElse (CType(sender, Button).Name <> "Button1") 'Change l'image de fond Me.Button1.BackgroundImage = Image.FromFile("...") 'Démarre l'action du bouton enfoncé Me.TimerAction.Start() 'Si c'est une simulation If simulDown Then 'Calcul un temps de bouton enfoncé aléatoire entre 2 et 5 secondes Dim tempsSimul As Integer = rnd.Next(2000, 5000) 'Modifie le délai du timer de bouton appuyé Me.TimerDown.Interval = tempsSimul 'Démarre le timer Me.TimerDown.Start() End If End Sub Private Sub Button1_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp 'Arrête le timer d'action sur bouton appuyé Me.TimerAction.Stop() 'Modifie l'image du bouton Me.Button1.BackgroundImage = Image.FromFile("...") End Sub
Maintenant promis, j'arrête ...
Public Class ButtonCorr Inherits Button Private _isSimulated As Boolean Private WithEvents _downTimer As Timers.Timer Private Delegate Sub OnMouseUpDelegate(ByVal e As MouseEventArgs) Public Sub New() 'Création du timer de simulation appuyé _downTimer = New Timers.Timer() _downTimer.AutoReset = False End Sub Public ReadOnly Property IsSimulated As Boolean Get Return _isSimulated End Get End Property 'Simule un click Public Sub SimulateClick(ByVal time As Long) _isSimulated = True 'Lance le mouse down du bouton Me.OnMouseDown(New MouseEventArgs(Windows.Forms.MouseButtons.Left, 1, 0, 0, 0)) 'Lance le timer de simulation pour attendre le temps demandé en paramètre _downTimer.Interval = time _downTimer.Start() End Sub 'Fin de la simulation Private Sub FinDown(ByVal sender As Object, ByVal e As Timers.ElapsedEventArgs) Handles _downTimer.Elapsed 'Lance le mouse up du bouton Me.Invoke(New OnMouseUpDelegate(AddressOf Me.OnMouseUp), New Object() {New MouseEventArgs(Windows.Forms.MouseButtons.Left, 1, 0, 0, 0)}) _isSimulated = False End Sub End Class