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

Windows Forms Discussion :

[VB2005] Rafraichir fenetre


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 247
    Par défaut [VB2005] Rafraichir fenetre
    Bonjour,
    J'ai fait un petit programme en VB qui lance des exécutables en mode console (des fichiers auto-extractibles).

    Ca fonctionne très bien sauf que les controles sur la windows form (les labels deviennent tous blanc) ne sont plus rafraichis pendant l'exécution du fichier dos.

    Voici un exemple de fenetre qui ne se rafraîchit pas (les labels blancs et les reste de la fenêtre dos).



    J'utilise la classe Process pour lancer mon executable dos.

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub CreateFromCd(ByVal RouteName As String)
            Dim uncab As New Process
            Dim RepertoireTemp As String = Path.Combine(Path.GetTempPath, "MSTSRoute")
            uncab.StartInfo.WorkingDirectory = RepertoireTemp
            uncab.StartInfo.FileName = Path.Combine(Application.StartupPath, "cabarc2.exe")
            uncab.StartInfo.Verb = "Open"
            uncab.StartInfo.Arguments = "-p X " + Path.Combine(TxtOrigRoutePath.Text, RouteName + ".cab") + " *.* " + RepertoireTemp
            uncab.Start()
            uncab.WaitForExit()
            uncab.Dispose()
            uncab = Nothing
    End Sub
    j'appelle ma prodécure avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CreateFromCd("EUROPE1")
    Je devrait peut-être créer un thread pour cette procédure ? Si oui comment car je comprends pas très bien le cours sur les threads en .Net

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Utilise un Thread différent (ou un BackGroundWorker si tu fais du .NET 2.0) pour exécuter ta méthode CreateFromCd.

    Ce que tu vois, c'est un problème de rafraichissement du au fait que c'est le Thread principale qui fait toutes les tâches (pour simplifier)

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 247
    Par défaut
    Merci pour l'info.
    Ca semble bien fonctionner par contre le background worker n'attends pas que ma procédure ait terminé (normal vu que c'est en arrière plan).

    Dans mon code j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If TabRoutes(3) then
      BgWork.RunWorkerAsync("Europe1")
    End if
    'le reste du code
    Comment faire pour que les instructions après le if ne soient exécutées qu'après la fin du travail du BackGroundWorker ???

    Merci.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Abonne toi à l'event RunWorkerCompleted du BackgroundWorker et met la suite de ton code à l'intérieur de cet évènement

Discussions similaires

  1. rafraichir fenetre et changer d'image dans la fenetre gtk
    Par gaara92 dans le forum GTK+ avec Python
    Réponses: 0
    Dernier message: 11/02/2014, 15h42
  2. Rafraichir une fenetre parent par la fermeture d'un popup
    Par loleske dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/05/2006, 08h14
  3. Redessiner (rafraichir) une fenetre
    Par @drien dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 17/01/2006, 21h59
  4. Rafraichir une fenetre ??
    Par MonsieurAk dans le forum Windows
    Réponses: 8
    Dernier message: 09/08/2005, 15h04
  5. [API] Rafraichir une fenetre ?
    Par laurent_h dans le forum Windows
    Réponses: 2
    Dernier message: 17/04/2004, 23h26

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