IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Pause entre instructions winform [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Par défaut Pause entre instructions winform
    Bonjour,
    Je suis à la recherche d'une solution pour faire une pause entre plusieurs instructions en vb.net winform.
    J'ai essayé avec un timer mais je n'arrive pas à le configurer..

    J'ai un label dans ma fenêtre, et je souhaite le changer à plusieurs reprises mais en faisait des pauses entre chaque changement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Me.Label1.Text="Texte1"
    'Pause de 2s
    Me.Label1.Text="Texte2"
    'Pause de 2s
    Me.Label1.Text="Texte3"
    'Pause de 2s
    Me.Label1.Text="Texte4"
    'Pause de 2s
    Etc...

    La fonction Threading.Thread.Sleep ne correspond pas à ma demande car elle freeze le programme

    J'ai tenté de créer une fonction intermédiaire de ce type pour pouvoir économiser de la place dans le code et pouvoir changer l'intervalle du timer rapidement à chaque fois que je veux faire une pause entre le changement de texte du label :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TexteLabel1("inserertexte" , intervalletimer)
    Mais je n'y arrive pas..

    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Je ne comprends pas l'intérêt d'une pause pour la modification d'un label qui prends tellement peu de temps.......brefff..... voilà qui devrait t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private sub WaitFor(Sec%) 
        Dim Dt As DateTime = DateTime.Now
        Do
            Application.DoEvents()
        Loop While Dt.AddSeconds(Sec) > DateTime.Now
    End Sub
    PS : Il y a également la possibilité d'implémenter un DispatcherTimer ou un StopWatch.......

    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2016
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 128
    Par défaut
    essaye tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.Sleep(2000) ' 2000 deux secondes

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par bygleader Voir le message
    essaye tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.Sleep(2000) ' 2000 deux secondes
    Il faudrait voir à lire intégralement le problème du demandeur avant de répondre :

    La fonction Threading.Thread.Sleep ne correspond pas à ma demande car elle freeze le programme
    ++

  5. #5
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Regarde du côté de async et await. Plus d'info sur la MSDN.

    Je ne connais pas la syntaxe en VB, mais il faudra faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Me.Label1.Text="Texte1"
    'Pause de 2s
    Await Task.Delay(2000)
    Me.Label1.Text="Texte2"
    'Pause de 2s
    Await Task.Delay(2000)
    Me.Label1.Text="Texte3"
    'Pause de 2s
    Await Task.Delay(2000)
    Me.Label1.Text="Texte4"
    'Pause de 2s
    Await Task.Delay(2000)
    Cette approche ne gèlera pas l'interface graphique, car le Await à le bon sens de rendre la main à l'appelant (en l'occurence, le thread graphique) tant que la tâche en attente n'est pas terminée.

    Par contre, il ne faut pas encapsuler les appels dans une fonction. Ce n'est pas que c'est impossible, mais l'approche sera alors différente et il faudra utiliser le chaînage de tâches. Je te renvoie sur mon tutoriel sur la gestion des tâches. Ce n'est pas en VB mais en C# mais cela te donnera malgré tout les informations nécessaires.

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    @DORINF :

    J'ai tendance a oublier le async ...await...... Merci au passage pour cet excellent tutoriel.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Par défaut
    Merci pour les réponses, j'ai opté pour la solution de wallace1 qui me paraît plus simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. passage de variables entre deux winform
    Par LaDeveloppeuse dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/04/2008, 16h25
  2. Communiquer entre une winform et une méthode javascript
    Par Osiris1900 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/02/2008, 16h16
  3. mettre une pause entre deux instructions
    Par christianf dans le forum C#
    Réponses: 3
    Dernier message: 21/02/2008, 14h43
  4. Créer une pause entre 2 questions
    Par naunau02 dans le forum Assembleur
    Réponses: 1
    Dernier message: 27/09/2006, 21h38
  5. [C#] Récupération de données entre 2 WinForm
    Par debug dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/09/2004, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo