Executer du code apres le chargement de la fenetre

[Résolu]
Signaler
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
13
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2010
-
Bonjour à tous,

ma question est tres simple: on a 2 form, form1 appelle form2 et lorsque form2 a fini de s'afficher elle doit executer des instructions, or en tapant ces instructions dans form2_load les instructions s'executent avant que form2 ne soit affichée.
Je voudrais donc comprendre comment remedier à ce probleme si simple qu'il ne semble pas y avoir de question sur le sujet dans le forum et je ne trouve pas non plus dans les tutos c# :-) 

par exemple avec l'affichage d'une messagebox :

namespace

test_fenetre_chargement
{

public
partial
class
Form2 :
Form
{

public Form2()
{
InitializeComponent();
}

private
void Form2_Load(
object sender,
EventArgs e)
{

MessageBox.Show(
"salut");
}
}
}

on obtient ici l'affichage de la messagebox avant celui de la form alors qu'on voudrait l'inverse...pourquoi docteur ??

8 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
il faut utiliser l'évènement Shown qui se déclenche une fois la fenêtre affichée

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Statut
Membre
Dernière intervention
9 avril 2008

oki mais comment fais-ton pour generer l'evenement Shown ? J'ai bien trouvé la liste des membres Form dans la doc mais je vois pas comment generer le corps de la methode pour y taper mes instructions... mmmmm comment je faisais sous vb ???
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
c'est pourtant pas compliqué d'ouvrir le designer, d'afficher la liste des évènements et de double cliquer sur le bon...

ou alors :

dans le constructeur :
this.Shown += ....;

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Statut
Membre
Dernière intervention
9 avril 2008

mais non mais jte promets je la trouve pas cette **** de fenetre sinon j'aurais jamais créé ce post, ca me rend un peu fou pour rien là et puis jtrouve pas dans la doc non plus. Aies un peu pitié et dis moi comment je la trouve cette fenetre parceque je suis sur que c'est sous mon nez en plus
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
Le propertygrid (fenêtre de propriétés) : il y a une icone en forme d'éclair...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Statut
Membre
Dernière intervention
9 avril 2008

ha jle savais que je l'avais sous le nez  c'est le petit eclair dans la fenetres de propriétés  désolé de poluer le forum
Messages postés
13
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2010

salut SEBMAFATE,
Sans toute fois te contredire, la méthode shown a un léger souci.
Je pars du fait que je voudrais imprimer une capture de mon formulaire, mais juste a son chargement.
Pendant le chargement cela imprime une fenetre noire , normal car tous les composants ne sont pas chargés.
Après chargement ie ton évènement SHOWN il imprime le formulaire mes les controlles (label, textbox etc... ) eux sortent en noir.
Que faire donc. N ya til un autre évènement plus approprié?
imprimer le formulaire en cours sans aucun clic, mais juste après chargement de la page et ceux automatiquement
Messages postés
13
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2010

j'ai résolu le problème mon ami.
Je rafraichit la fenetre dans le shown et aussi j'attends meme une seconde de plus avant de lancer l'impression. car en principe je voudrais imprimer
plusieurs fois la meme form avec des valeurs différentes.
Encore de ton évènement shown.