BackgroundWorker et UserControl

lelio1407 Messages postés 4 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 7 décembre 2010 - 19 nov. 2009 à 13:40
lelio1407 Messages postés 4 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 7 décembre 2010 - 19 nov. 2009 à 15:10
Bonjour à tous,
Bonjour à tous,
J'ai un userControl dans ma fenêtre principale qui contient des champs de paramétrage d'un Download. Lorsque je click sur le bouton OK de ce UserControl, je lance le téléchargement dans un BackgroundWorker. Je veux que ce UserControl se ferme et laisse la place à un autre UserControl qui contient une ProgressBar. Mon problème est que suite au clik, le téléchagement est lançé mais mon UserControl ne se ferme pas et celui contenant la ProgressBar n'apparait pas. Je pense que c'est un problème de rafraichissement mais je ne sais pas comment faire.
voici le code :
private void Download_ButtonClick(object sender, RoutedEventArgs e)
        {                        Download_UserControl.Visibility = Visibility.Hidden;
                       DownloadProgress_UserControl.Visibility = Visibility.Visible;
            
 _downloadWorker = new BackgroundWorker();
            _downloadWorker.WorkerSupportsCancellation = true;
_downloadWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(_downloadWorker_DoWork);
_downloadWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(_downloadWorker_RunWorkerCompleted);
            
          
_downloadWorker.RunWorkerAsync();
            Thread.Sleep(100);

while (downloadWorker.IsBusy)
{
 UpdateProgressBar();                
Thread.Sleep(10);
            }


avec
 private void _downloadWorker_DoWork( object sender, DoWorkEventArgs e)
       {
           GXP_ClassComm MyClassCom = new GXP_ClassComm();
           string pathHex = System.IO.Path.Combine(GC_App.FolderPath, GC_App._mainDataProjectClass.FileName);
MyClassCom.Load_GraphicLibrary(pathHex);
       }



Merci d'avance pour votre aide!!

2 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
19 nov. 2009 à 14:48
J'avoue ne pas avoir vraiment plongé le nez dans ton code, mais en ce qui concerne le rafraichissement, Application.DoEvents() marche souvent très bien. Si cependant tu utilises WPF (comme tu en as l'air), tu peux regarder par ici : Tapez le texte de l'url ici.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
lelio1407 Messages postés 4 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 7 décembre 2010
19 nov. 2009 à 15:10
Merci, je vais essayer ça de suite.
0
Rejoignez-nous