Timer Windows vb.net

cs_jojo93 Messages postés 2 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 11 juin 2004 - 11 juin 2004 à 10:11
cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 - 11 juin 2004 à 14:20
Bonjour,

J'aurai besoin d'aide.

J'ai créer un timer windows qui démarre un compte à rebours de 20 secondes sur l'évènement d'une picturebox activée. Au terme du temps écoulé, si je n'ai pas cliqué sur cette picturebox, cela déclenche une procédure.

Le problème est que cela ne marche pas tout le temps. La lecture du code s'arrête et cette procédure n'est pas lue.

Je précise que j'ai deux timers de créés dans le même formulaire.

Voici le code :

Imports System.Windows.Forms.Timer

Private Sub picLecteurCB_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles picLecteurCB.EnabledChanged
If picLecteurCB.Enabled = True Then
AttenteRepriseCB()
End If
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
intcounterA -= 1

StatusBar1.Text = "Compte à rebours pour reprendre la Carte bleue : " & CStr(intcounterA) & " """
StatusBar1.Refresh()
If intcounterA < 1 Then
Timer1.Stop()
Call CarteNonReprise() '<---C'est ici que le code s'arrête.
Timer1.Enabled = False
intcounterA = 15
End If

End Sub

Public Sub AttenteRepriseCB()

AddHandler Timer1.Tick, AddressOf Timer1_Tick
Timer1.Interval = 1000
Timer1.Enabled = True

intcounterA = 15

Timer1.Start()
'Run the timer, and raises then event
Application.DoEvents()

StatusBar1.Text = ""
RemoveHandler Timer1.Tick, AddressOf Timer1_Tick
End Sub

Si quelqu'un a déjà rencontré ce type de problème et qu'il a trouvé une solution et qu'il peut m'en faire part, cela serait génial. je dois présenter mon appli bientôt et et j'aimerai bien que cela marche quand je ferai la démo.

Merci d'avance.

Jojo

1 réponse

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
11 juin 2004 à 14:20
Personnelement je ne ferai pas comme çà

1)Tu crée un timer dans la fenêtre de conception Graphique
EX : Timer1, Enabled=True, Temps=1000
2) tu l'initilase à false lors du chargement de ta fenêtre
sub form1_load()
timer1.enabled=false
endsub
3)Dans ATTENTEREPRISE.... tu le mets à TRUE
timer1.enabled=TRUE

Quand ton timer aura compté 1000 il ira dans timer1_tick()..

Ton code pourrait ressemblé à çà
Private Sub picLecteurCB_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles picLecteurCB.EnabledChanged
If picLecteurCB.Enabled = True Then
intcounterA = 15
Timer1.enabled=TRUE
End If
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
intcounterA -= 1

StatusBar1.Text = "Compte à rebours pour reprendre la Carte bleue : " & CStr(intcounterA) & " """
StatusBar1.Refresh()
If intcounterA < 1 Then
Timer1.enabled=false
'Pas la peine d'utiliser le call en .NET
CarteNonReprise() '<---C'est ici que le code s'arrête.
Timer1.Enabled = False
intcounterA = 15
End If
End Sub

j'espère avoir été assez clair

@+
LIM
0
Rejoignez-nous