[C#] Splash Screen [Résolu]

Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
- - Dernière réponse : MickParadiseLost
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
- 20 mai 2005 à 16:11
Hello !

J'aimerais creer un splash screen qui ne sert pas uniquement au design
mais qui charge le programme avec une barre de progression.

De plus, j'aimerais qu'il s'affiche lorsque le programme est en fond. (un peu comme photoshop ou blender).

Merci
Afficher la suite 

Votre réponse

18 réponses

Meilleure réponse
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
3
Merci
Non ben c'est bon j'ai réussi a faire un truc qui ressemblé à ce que je voulais faire.

En fait au lieu de marquer les elements qui se chargent, je regle
mon timer afin d'enlever mon fensplash quand les elements sont chargés.
Comme tout le monde n'a pas le meme processeur, il y'ora peut etre
quelque seconde de décalage mais bon c'est pas grave sa se verra pas.

Merci MickParadiseLost 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de MickParadiseLost
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
Salut,
Tu peux jeter un oeil sur cette source (fait une recherche sur le site avant).
http://www.csharpfr.com/code.aspx?id=11410

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
0
Merci
Merci mais elle me sert arien cette source.

Elle ne charge pas l'application.
Commenter la réponse de MickParadiseLost
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
J'espère que tu attends quand même pas que qqn le fasse pour toi ?

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
0
Merci
euh non je veux pas qu'on le fasse pour moi. je demande juste un peu d'aide. Et c'est pas en me disant ça que tu m'aide !
Commenter la réponse de MickParadiseLost
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
Presque tout le travail est fait sur cette source, faut pas attendre un truc tout fait non plus...
Bon sinon avec une progressBar y'a toujours ceci : http://www.codeproject.com/csharp/PrettyGoodSplashScreen.asp

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
0
Merci
Je procéderais ainsi :



Lancement de la splash screen depuis le l'evenement Load de ta form principal



private void form_Load(object sender, EventArgs e)

{

this.Hide();

SplashScreen sc = new SplahScreen();

sc.ShowDialog();

}



Ensuite dans ta SplahScreen, tu lances ton Thread qui fera ce que tu
veux faire. En gardant a l'esprit que si tu veux modifier des choses
sur ta form principale, il faudra que tu utilises des BeginInvoke()
avec un delegué (interdit d'acceder a des propriétés / variables / etc
entre les Threads).



Tu peux mettre ces propriétés de ton SplashScreen



this.ControlBox = false;


this.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.None;




Et overrider la méthode OnPaint pour y dessiner un contours.

Pense aussi a overrider l'evenement Closing et d'y annuler la fermeture
de ta SplashScreen tant qu'elle a pas fini de faire ton travail, sinon
il suffira d'un ALT+F4 pour la fermer.



En gros je crois que c'est tout



Mx
Commenter la réponse de MorpionMx
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
0
Merci
Merci pour la source. Je l'avais déjà telecharger mais je n'arrive pas a la débogger.

Visual Studio m'affiche un message d'erreur et parle d'URL mais j'ai pas compris.

Si tu arrive a la débogger tu peux me dire comment faire stp.
Commenter la réponse de MickParadiseLost
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
0
Merci
Y'a aucune erreur, tu dois juste passer le second projet en projet de
demarrage, sinon il va vouloir executer une bibliotheque de classe
(autrement dit, une dll), et ca, ca peut pas marcher

Mx
Commenter la réponse de MorpionMx
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
0
Merci
Je sais bien ke je suis nul mais ça veut dire quoi passer le second projet en projet de demarrage?

Je dois faire comment?
Commenter la réponse de MickParadiseLost
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
Mouais, et au premier démarrage y'a pas de progressBar, parce qu'il doit écrire des valeurs dans la base de registre. Ca marche seulement après

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
Touche de droite sur le deuxième project et ensuite
"Set as startup project"

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
0
Merci
Clic droit sur le second projet qu'il y a dans l'explorateur de
solution (TestIt je crois) -> Définir comme projet de démarrage
(Avec visual Studio, tout du moins)



Mx
Commenter la réponse de MorpionMx
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
0
Merci
Qui pour la version Espagnole ?

Mx
Commenter la réponse de MorpionMx
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
0
Merci
excellent j'arrive a le faire marcher.

Je vais essayer d'en faire autant dans mon projet.

Merci
Commenter la réponse de MickParadiseLost
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
derecho chasque encendido el segundo proyecto y entonces
"fije como proyecto de lanzamiento"

lol.

Sinon je pense que d'inscrire des valeurs dans la registry pour un splashscreen, c'est pas droit ça.
La progressBar devrait plutôt avancée en fonction de l'avancement du chargement qui est effectué dans l'autre Thread (pas besoin d'écrire quoique ce soit ou que ce soit).

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
2
Date d'inscription
dimanche 22 septembre 2002
Dernière intervention
20 mai 2005
0
Merci
on dirait que t'as pas besoin d'aide. ce qu'on t'a donné est largement suffisant même pour un nul.
Commenter la réponse de cs_GBESS
Messages postés
86
Date d'inscription
samedi 26 février 2005
Dernière intervention
2 avril 2008
0
Merci
Il y'a ceci dans le code de la form1.



SplashScreen.SetStatus("Loading module 6");

System.Threading.Thread.Sleep(50);

SplashScreen.SetStatus("Loading module 7");

System.Threading.Thread.Sleep(240);

SplashScreen.SetStatus("Loading module 8");

System.Threading.Thread.Sleep(900);

SplashScreen.SetStatus("Loading module 9");

System.Threading.Thread.Sleep(240);

SplashScreen.SetStatus("Loading module 10");

System.Threading.Thread.Sleep(90);



ça veut dire quoi?

enfin je sais ce que ça veut dire mais en fait ça charge pas vraiment les modules X. C'est juste pour faire bien non?
Commenter la réponse de MickParadiseLost

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.