cs_Nestor
Messages postés182Date d'inscriptionmardi 8 janvier 2002StatutMembreDernière intervention 2 octobre 2012
-
31 août 2012 à 14:47
cs_Nestor
Messages postés182Date d'inscriptionmardi 8 janvier 2002StatutMembreDernière intervention 2 octobre 2012
-
4 sept. 2012 à 00:15
Bonjour,
je voudrais créer avec un Timer (validation de départ sur un simple bouton (Button2)) une fonction de décompte de 30 secondes. Cette fonction doit être capable de se relancer toute seule que quand le Timer est arrivé à zéro.
J'ai essayé dans Timer1_Tick avec ca: (timer réglé à 1000 et sur True dés le départ.)
Dim timercount As Integer = 30
timercount = timercount - 1
Button1.Text = "Actualiser mes Statistiques (" & timercount & ")"
If timercount = 0 Then
'ici une action que mon programme va créer que si ZERO est affiché sur ce bouton.
End If
Quand je lance ce bout de code, il est marqué 29 mais ne continue pas.
Et c'est la que vous intervenez pour m'aider, car je ne vois pas d’où viens le pb.
Le code qui suit vient directement de l'aide de VB. Eh oui, il y a des exemples dans l'aide. Il fait afficher un(e) messagebox 5 secondes après avoir cliqué Ok. Il utilise un contrôle Timer. Il repart automatiquement à zéro dès que le client a répondu oui. Si la ligne:
myTimer.Stop()
était enlevée, il repartirait automatiquement à toutes les cinq secondes
Public Class Class1
Private Shared WithEvents myTimer As New System.Windows.Forms.Timer()
Private Shared alarmCounter As Integer = 1
Private Shared exitFlag As Boolean = False
' This is the method to run when the timer is raised.
Private Shared Sub TimerEventProcessor(myObject As Object, _
ByVal myEventArgs As EventArgs) _
Handles myTimer.Tick
myTimer.Stop()
' Displays a message box asking whether to continue running the timer.
If MessageBox.Show("Continue running?", "Count is: " & alarmCounter, _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
' Restarts the timer and increments the counter.
alarmCounter += 1
myTimer.Enabled = True
Else
' Stops the timer.
exitFlag = True
End If
End Sub
Public Shared Sub Main()
' Adds the event and the event handler for the method that will
' process the timer event to the timer.
' Sets the timer interval to 5 seconds.
myTimer.Interval = 5000
myTimer.Start()
' Runs the timer, and raises the event.
While exitFlag = False
' Processes all the events in the queue.
Application.DoEvents()
End While
End Sub
End Class
Dans ton cas, tu mets
myTimer.Interval = 30000
et à tous les multiples de 1000 millisecondes tu fais afficher le nombre de secondes qui reste.
Ou, mieux que cela, dès que ton timer atteint 0, tu lui fais faire la mise à jour automatiquement. Dans ce cas, même pas besoin d'afficher de décompte.
jordane45
Messages postés38223Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention27 juillet 2024344 31 août 2012 à 15:36
Bonour,
déjà, pense à utiliser les balises de codes.
ensuite..
Dans ton code tu fixe ton compteur à 30... A chaque fois qu'il y entre.. donc toutes les secondes en fait...
Ta variable=30 doit etre initialisée en dehors du TICK
Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI