Les Forms problemes

Résolu
tonyledragon Messages postés 173 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 13 décembre 2012 - 26 juin 2012 à 12:50
tonyledragon Messages postés 173 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 13 décembre 2012 - 27 juin 2012 à 11:01
Salut,Voila j'ai quelque problème avec les forms sur C# voila mon problème.
J'ai deux forme le form1 et 2 kle form 1 s'ouvre je clique sur un bouton avec la commande :
Form test =new Frm2();
test.hide();
this.hide;


Sa marche sans problème puis sur le form 2 quand je clique j'aimerais réouvrire le form 1 enfin le reafficher non pas réouvrire totalement tous le form donc j'avez mit se code
Form test =new Frm1();
test.show();
this.close;

Bref voila donc je sais pas trop comment réouvrire mon form déja ouvert mais cachez par Hide.

Merci d'avance

5 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
26 juin 2012 à 14:34
Salut,

il faut que ton instance de Form2 voit l'instance de Form1 qui l'a appelé, et non qu'il fasse une nouvelle instance. Pour cela dans ta Form1 tu fais :
// nouvelle instance de frm2
Form frm = new frm2();
// on inscrit la référence à frm1 (this) dans notre instance de frm2
frm2.Owner = this;
// on cache la frm1
this.Hide();


Dans la ta Form2 tu pourras alors utiliser l'instance de Form1 :
// on réaffiche l'instance de frm1 (référencée dans Owner de frm2)
this.Owner.Show();
// on kill la frm2
this.Close();


PS : on doit avoir cette question au moins une fois par mois sur le ring CS, pense à utiliser la fonction recherche la prochaine fois.
3
cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
26 juin 2012 à 14:47
Bonjour,

Ton code actuel recrée une instance de form1 depuis ton form2.

Une possibilité serait de passer ton form1 en paramètre de ton form2
Form2 test = new Form2(this);

et dans ton contructeur de form2 tu aura quelquechose comme;
        private Form1 f1;

        public Form2(Form1 f1)
        {
            InitializeComponent();
            this.f1 = f1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //ici code pour masquer/afficher le form1
            //avec un test sur f1.Visibility
            if (f1.WindowState == FormWindowState.Normal)
            {
                f1.WindowState = FormWindowState.Minimized;
            }
        }
0
cs_BinKentsu Messages postés 64 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 22 juillet 2014 8
26 juin 2012 à 15:05
Bonjour,

Moi je te proposerai d'utiliser la fonctionnalité DialogResult.
En fait, tu feras ça :

Form form2 = new Form2();
this.Hide();
form2.ShowModal();
this.Show();

Dans la Form2, tu as une propriété sur ton bouton qui s'appelle DialogResult, tu lui affectes par exemple OK.

Du coup, tu ouvriras ta Form2 et mettras en attente ta Form1 (en pause si tu préfères), jusqu'à ce que tu appuies sur le bouton de ta Form2.

Cette fonctionnalité est utilisée pour permettre d'utiliser les forms ensemble.

BinKentsu
0
cs_BinKentsu Messages postés 64 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 22 juillet 2014 8
26 juin 2012 à 15:07
Je précise que le bout de code que j'ai écrit est à intégrer dans la Form1 (pour information que j'ai oublié de préciser ^^)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tonyledragon Messages postés 173 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 13 décembre 2012 1
27 juin 2012 à 11:01
Je prefert la fonction de jopop les autre fonction me plait un peut moin enfin après j'ai pas tester mais voila merci a vous tous
0
Rejoignez-nous