Une appli, plusieurs fenêtres, l'intérieur est "blanc"

Signaler
Messages postés
3
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
1 juin 2004
-
Messages postés
264
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2013
-
Bonjour, je débute en C#.

J'ai fait une petite appli avec une fenêtre principale, qui doit recevoir plein d'informations, informations qui sont calculées au lancement du programme. Ca prend environ 10-15 secondes. Tout marche niquel.

Maintenant, mon problême.

Je veux rajouter une sorte de petite fenêtre de progression, qui indique à l'utiliseur: "on traite les fichiers X/Y" (par exemple), en gros, pour montrer que ça travaille bien derrière.
J'ai donc créé (File --> Add New Item --> Windows Form) une petite fenêtre avec 2 textes dedans (WIP.cs). Dans mon WIP (Work In Progress).cs, j'ai appellé ça namespace WIP. Et ma classe c'est WIP.

Dans mon appli principale, j'ai fait:

using WIP; // forcément
WIP myWIP; //déclaration
myWIP = newWIP(); // allocation

//à partir de là, je vais lancer mes gros calculs, j'aimerais donc afficher ma petite fenêtre de progression.
myWIP.Show();

// Le problème ici, c'est que la fenêtre apparait bien, mais l'intérieur est tout blanc, dedans, il n'y a RIEN.

Ca fait 1h30 que je cherche sur le net, rien pour me débloquer :( Je suis sûr que c'est tout con, mais là je bloque complet.

SVP quelqu'un ? Cela serait immensément apprécié.
Si, par ailleurs, vous avez des sources (n'importe quoi) avec une appli qui jongle avec plusieurs fenêtres comme cela, je prends...

MERCI BIEN

8 réponses

Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
Le plus "efficace serait de lancer cette fennetre dans un autre thread, car le thread principale se charge deja des calculs (ce qui ne laisse pas de temps pour le refresh de ta fenetre de progression). Mais si tu debut, les threads sont peut etre pas la prise de tete idéale.

Une deuxieme solution beaucoup - propre consiste a faire des myWIP.Refresh() lorsque les informations de la fenetre change, ce qui a la dont de forcer la mise a jour de l'UI en bloquant le reste du prog (quelques ms koi:d)
Cette solution devrait suffir a ton probleme.

A++

:-p Crazyht :)

[Admin Codes-Sources]
[Membre Developer-Association]

Un programmeur, c'est quelqu'un qui résout pour toi, de façon incompréhensible, un problème que tu ignorais avoir...
Messages postés
3
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
1 juin 2004

Mama mia !!!

J'ai opté pour ta solution la plus simple,, le Refresh(), et ça marche :) :) :)

Je te remercie beaucoup, Crazyht ! :)
Messages postés
264
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2013
3
Bonjour Crazyht

Dans le meme genre d'idée.

as-tu une idée pour geler la fenetre le temps d'un calcul est afficher ce dernier une fois finie

A+
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

A mon avis, la meilleur solution est les Thread
pour t'aider voila un pt exemple d'utilisation des threads:

using System.Threading;//la classe
private Thread thread=null;/init le thread

thread= new Thread(new ThreadStart(TaClasse.TaMethode));
thread.Start();

NO TIME TO WASTE
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

ça c'est pour fdouieb
tu initialise ta form en enabld = flase

dans :

private void Form1_Load(object sender, System.EventArgs e) {
this.Enabled=false;
}

et dès que tes calcul sont finis tu met
this.Enabled=true;

A+
NO TIME TO WASTE
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
myfrm.SuspendLayout(); pour figé l'affichage
puis
myfrm.ResumeLayout(true); pour le defiger et forcer un refresh (false pour ne pas forcer)

A++

:-p Crazyht :)

[Admin Codes-Sources]
[Membre Developer-Association]

Un programmeur, c'est quelqu'un qui résout pour toi, de façon incompréhensible, un problème que tu ignorais avoir...
Messages postés
3
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
1 juin 2004

Excellent, je vais utiliser ça aussi :)
Messages postés
264
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2013
3
Merci crack_xp et Crazyht

A+