Comment créer un décompte de 30s puis le relancer ? [Résolu]

cs_Nestor 182 Messages postés mardi 8 janvier 2002Date d'inscription 2 octobre 2012 Dernière intervention - 31 août 2012 à 14:47 - Dernière réponse : cs_Nestor 182 Messages postés mardi 8 janvier 2002Date d'inscription 2 octobre 2012 Dernière intervention
- 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.

Merci d'avance.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Utilisateur anonyme - 31 août 2012 à 17:23
3
Merci
Bonjour,

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.

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
jordane45 21937 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 8 août 2018 Dernière intervention - 31 août 2012 à 15:36
0
Merci
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
Commenter la réponse de jordane45
cs_Nestor 182 Messages postés mardi 8 janvier 2002Date d'inscription 2 octobre 2012 Dernière intervention - 4 sept. 2012 à 00:15
0
Merci
Merci beaucoup de ton aide.
ca marche nikél !!!
Merci.
Commenter la réponse de cs_Nestor

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.