none
Utiliser un timer dans un module RRS feed

  • Question

  • Bonsoir,

    Je voulais créer une sub dans un module permettant de faire apparaitre et disparaitre un label pendant une période donnée. Je passe en paramètre mon label concerné et en deuxième paramètre une durée en seconde. Je voulais ensuite dans ma sub créer un timer, l'enclencher et ensuite quand arrive la durée choisis hop on l'arrête. Mon problème est que je ne vois pas comment pouvoir définir les actions à faire pour chaque tick du timer. J'arrive à le créer, à le faire démarrer mais après je ne vois pas comment faire pour que la sub face comme dans le scenario que je prévois. Je voulais créer cette sub dans un module plutôt que dans une form pour avoir à éviter d'ajouter un timer par form.

    J'espére que je suis assez clair.

    Je vous remercie d'avance pour votre aide.
    samedi 31 octobre 2009 22:29

Réponses

  • Bonjour,

    Voici un exemple de code qui instancie un timer et branche l'événement Elapsed à la méthode Tick :

    Dim t As System.Timers.Timer
    
    t = New System.Timers.Timer(200)
    AddHandler t.Elapsed, AddressOf Tick
    La méthode Tick :

    Private Sub Tick(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
    
    End Sub
    Cordialement

    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Proposé comme réponse TroxsaEditor lundi 9 novembre 2009 21:57
    • Marqué comme réponse Takumii lundi 9 novembre 2009 22:23
    mardi 3 novembre 2009 22:26
    Modérateur

Toutes les réponses

  • Salut,

    lors du premier Tick du Timer, tu dois le désactiver et avoir une façon de retrouver le label original pour le faire disparaitre.
    Microsoft MVP C# :: mongeon.devrpm.ca
    lundi 2 novembre 2009 18:07
    Modérateur
  • Bonsoir,

    Justement comment je peux savoir quand à eu lieu ce premier tick. Moi jusqu'a maintenant quand j'utilisais un timer dans un form, en double cliquant dessus j'avait une nouvelle sub qui était du genre Private sub timer1_tick (....) handles timer1.tick  ....... End sub . Dedans j'y mettais le code que j'avais à executer. Mais dans le module quand je crée mon timer comment je fait pour avoir la même chose?

    Moi je voyais la chose de la sorte. J'ai un label qui est visible = false. Quand j'éxécute une action quelconque et que je veux avertir l'utilisateur d'une chose je fait appelle à ma sub de mon module pour faire apparaitre et disparaitre un label. Cette sub c'est un truc assez basique du genre: Public sub faireApparaitre(byval monLabel,byval durée)....End sub.

    Dans cette sub je voulais faire un Dim chrono as new timer, puis en interval mettre la valeur de durée et enfin faire apparaitre le label visible = true. Et là je bloque pour dire quand tu as eu un premier tick (le timer) alors arrête toi et met le label.visible = false.

    Merci d'avance
    lundi 2 novembre 2009 19:45
  • Bonjour,

    Voici un exemple de code qui instancie un timer et branche l'événement Elapsed à la méthode Tick :

    Dim t As System.Timers.Timer
    
    t = New System.Timers.Timer(200)
    AddHandler t.Elapsed, AddressOf Tick
    La méthode Tick :

    Private Sub Tick(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
    
    End Sub
    Cordialement

    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Proposé comme réponse TroxsaEditor lundi 9 novembre 2009 21:57
    • Marqué comme réponse Takumii lundi 9 novembre 2009 22:23
    mardi 3 novembre 2009 22:26
    Modérateur