[vb2005] quitter sub sans être dedans !!!

Résolu
lex1111 Messages postés 220 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 26 octobre 2007 - 5 déc. 2006 à 22:49
lex1111 Messages postés 220 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 26 octobre 2007 - 6 déc. 2006 à 18:56
Bonjour, j'aimerais lorsque je clic sur le bouton arreter fermer la form et arreter  la  "sub" en cours...
Le problème c'est que j'arrive a fermer la form, mais pas a quitter la sub qui continue de se terminer ce qui entraine des bugs...
Comment faire pour arranger ça ?

voila le code ....
--------------------------------------
    Private Sub bt_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ok.Click
        'ici la sub qui dure un certain temps, qu'il faut que je quitte lorsque je clic sur le bouton arreter...
    End Sub

    Private Sub bt_arreter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_arreter.Click
        Me.Close()
       'que mettre ici pour que la sub bt_ok_click se termine prematurement ????
    End Sub
---------------------------------------------
merci d'avance...

lex1111

5 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
6 déc. 2006 à 11:30
Ben tu peux appliquer ce que je t'ai dis a chaque boucle ^^

While Condition1 And Running
...
Application.DoEvents
While Condition2 And Running
...

...

Application.DoEvents
Wend
Wend

Ca posera aucun problème...

Julien.
3
Utilisateur anonyme
5 déc. 2006 à 23:22
Salut,

La tu peut pas.
Il faut mettre ta sub qui dure dans un autre theard.
(Comme pour ton précédent post)





__________
Kenji
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
5 déc. 2006 à 23:24
Salut,
J'imagine que le sub qui dure un certain temps est une boucle, (si ce n'est pas le cas, inspire-toi...)

Dim Running as boolean = True

Private Sub bt_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ok.Click
While Condition And Running
...
Application.DoEvents 'Permet de gérer les messages en attentes i.e. le sub bt_arreter_click
Wend
End Sub

Private Sub bt_arreter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_arreter.Click
Running = False
Me.Close()
End Sub

La clé est dans l'utilisation de DoEvents qui permet de traiter les messages en attente...

Julien.
0
lex1111 Messages postés 220 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 26 octobre 2007 1
6 déc. 2006 à 07:33
Oui je pensait aussi a un backgroundworker, mais je voulais quelque chose de plus propre...
Pour ce qui est de ta reponse Julien, ça ne marche pas car j'ai beaucoup de boucle dans ma sub...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lex1111 Messages postés 220 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 26 octobre 2007 1
6 déc. 2006 à 18:56
Oui c'est ce que j'ai fais pour finir car le backgroundworker ne marchait pas !
0
Rejoignez-nous