IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[c#]fermeture d'une form à partir d'une autre


Sujet :

C#

  1. #1
    Membre confirmé Avatar de AmineDev9
    Inscrit en
    Décembre 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 193
    Par défaut [c#]fermeture d'une form à partir d'une autre
    Bonjour
    J'ai dans mon application deux form: form1 et form2.

    Le code d'un bouton de la form 1 est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Form2 f2 = new Form2();
    f2.Show();
    this.Visible = false;
    le constructeur de la form2 est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Form2()
            {
                this.FormBorderStyle = SizableToolWindow;
                InitializeComponent();
            }
    Je veut que lorsque on ferme la form2, la première apparaitre :s.
    comment on fait ça !!!!!
    Merci pour vos aides . . .

  2. #2
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    tu passes en paramètre de ton deuxième form le form1 et dans l'évènement onClose de ton form2 tu met le form1 à l'état visible. et le tour est joué...

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            private void button1_Click(object sender, EventArgs e)
            {
                this.Visible = false;
                using (Form2 frm = new Form2())
                {
                    frm.ShowDialog();
                }
                this.Visible = true;
            }

  4. #4
    Membre confirmé Avatar de AmineDev9
    Inscrit en
    Décembre 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 193
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void form_Load(object sender, EventArgs e){//code de fonction}
    le code de cette fonction s'exécute lorsque on créer une instance de cette forme.
    existe-t-il une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void form_Colse(object sender, EventArgs e){// code on fermeture}
    !!!!!!!!!!
    de telle sorte lorsque on ferme la forme ,le code s'exécute !!!!
    merci pour vos aides

  5. #5
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Prends le temps de regarder la MSDN et les événements associés à la classe Form. Ca éviterai ce genre de questions

  6. #6
    Membre confirmé Avatar de AmineDev9
    Inscrit en
    Décembre 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 193
    Par défaut
    j'ai posé la question car je trouve pas de solution
    j'ai cherché dans la msdn et j'ai trouve la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void Form1_FormClosing(Object sender, FormClosingEventArgs e) 
            {
                DialogResult res = MessageBox.Show("fermeture");
            }
    mais lorsque je ferme la form1 , j'ai aucun affichage :s

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    sans doute parce que tu as fais un banal copier-coller de ce code dans ton propre code ?
    Si ce code n'est pas affecté à l'objet Form, ça ne peut pas fonctionner

  8. #8
    Membre confirmé Avatar de AmineDev9
    Inscrit en
    Décembre 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 193
    Par défaut
    sans doute parce que tu as fais un banal copier-coller de ce code dans ton propre code ?
    !!!!!!

    In Form2.designer.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Close += new System.EventHandler(this.Form2_Closing);
    In Form2.cs (form) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
            {
                DialogResult res = MessageBox.Show("dffff");
            }
    aucun résultat de même :s, comment on fait !!

  9. #9
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Eh bien je ne vois pas trop quoi te dire d'autre.

    Crée une nouverlle Form,
    Affiche les propriétés,
    Vas dans les évènements,
    Fais un double-clic sur FormClosed, ça va t'afficher le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
            {        }
    Place ici ton affichage de message,
    Execute ton projet,
    Ferme la fenètre,

    et tu verras ton message affiché .

    Tu as surement loupé un truc dans ton code actuel.

  10. #10
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    vous vous prenez un peu la tete...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Form2 frm = new form2();
    (frm.ShowDialog == DialogResult.OK)
    {
       //Code à executer
    frm.Close();
    }
    Ou pour être plus propre tu peux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    using(Form2 frm = new form2())
    {
       (frm.ShowDialog == DialogResult.OK)
       {
          //Code à executer
          frm.Close();
       }
    }
    )

  11. #11
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    sauf que le frm.ShowDialog() ne te laisse pas aller à la ligne frm.Close();

    frm doit se fermer lui-même. Et le Close() ne sert à rien dans ce cas.

  12. #12
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    en faite il ira à la ligne frm.close(), mais il va déclencher une exception...
    et oui il y a pas les () dans ma méthode ShowDialog()...
    ces erreurs là c'est pas ce qui va le coincer...

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/01/2009, 12h45
  2. Accèder les objets d'une form à partir d'une classe
    Par xyron_x dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/04/2007, 14h49
  3. Réponses: 3
    Dernier message: 02/04/2007, 20h37
  4. Accéder à des objets d'une Form à partir d'une classe
    Par kinouseb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/01/2007, 18h07
  5. [VB.NET] Activer procédure d'une form à partir d'une autre
    Par ricil78 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/05/2004, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo