InfoSep
Messages postés5Date d'inscriptionlundi 21 mars 2005StatutMembreDernière intervention12 janvier 2006 22 nov. 2005 à 10:12
Merci pour ta réponse,
mais j'ai déjà essayé cette méthode et elle n'a pas d'impact sur ma fenêtre principale.
pour info, ma fenêtre contenant la barre de progression est lancée en
asynchrone par un thread et c'est au moment de l'arret du thread que la
fenêtre principale est basculée en arrière plan.
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 22 nov. 2005 à 12:11
C'est en fait assez "simple" à résoudre (hormis les implications niveau cross thread que je te laisse résoudre).
Il te suffit en effet d'appeler BringToFront après la fermeture de ton Form de progression, et ce dans le thread en question.
Quand tu as Application.Run(new Form1());, le framework initialise derrière un contexte d'application (cf ApplicationContext).
Une propriété interessante de cette classe est MainForm, qui est dans notre cas l'instance retournée par new Form1()
Donc la solution (à mettre au propre) :
Ajout d'un membre à la classe Form1, pour stocker le contexte :
internal static ApplicationContext _appContext; //ça c'est pas très propre...
De transformer l'initialisation comme ceci :
Form1._appContext = new ApplicationContext(new Form1());
Application.Run(Form1._appContext);
Et d'effectuer cet appel à la fin de ta procédure de thread :
Form1._appContext.MainForm.BringToFront();