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 :

Cacher et afficher un formulaire


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de mbar
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut Cacher et afficher un formulaire
    Bonjour,
    J'ai un formulaire Form1 avec un bouton qui appelle un formulaire Form2 en cachant le Form1:
    this.Hide();
    Form Form2bis = new Form2();
    Form2bis.Show();
    Sur Form2, j'ai un bouton et je voudrais qu'il ferme Form2 et fasse réapparaître Form1 mais Form1 n'est pas reconnu dans Form2..... Je ne peux pas coder dans Form2 : Form1bis.Show();....
    Dans Form1 j'ai : public partial class Form1bis: Form

    D'avance merci

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Une solution est de passer la référence de Form1 à Form2 via par exemple le constructeur de Form2.

    Tu vois ce que je veux dire ?

  3. #3
    Membre confirmé Avatar de mbar
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut
    Heu... Pas trop !!
    Si tu peux me donner un exemple ce serait sympa... si cela te prends pas trop de temps

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Salut,
    il faut que tu définisses un nouveau constructeur de ta classe Form2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // il te faut un champ pour stocker la référence form1:
    Form1 form1;
     
    public Form2(Form f1)
    {
        this.form1 = f1;
    }
    et quand tu instancie ta form2 dans Form1, tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form Form2bis = new Form2(this);
    comme ça tu pourras faire un Show() sur ta form1...

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Il faut que ton Form2 connaisse le formulaire Form1 que tu veux réafficher.

    Donc, par exemple, tu stockes ton instance de Form1 dans un champ de Form2.
    Ce qui donnes (code tapé vite fait) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public class Form2 : Form
    {
       public Form2(Form1 formPrincipale)
          : Form2()
       {
          this.formPrincipale = formPrincipale;
       }
     
       protected void button_click(...)
       {
          this.Close();
          formPrincipale.Show();
       }
     
       private Form1 formPrincipale;
    }
     
    public class Form1 : Form
    {
       protected void button_click(...)
       {
          Form2 form2 = new Form2(this);
          this.Hide();
          form2.Show();
       }
    }
    EDIT : argh, grillée

  6. #6
    Membre confirmé Avatar de mbar
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Par défaut
    Ca fonctionne...........Chapeau !!!
    Merci beaucoup

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Par défaut
    excuses moi Astartee
    pour quoi as tu utilisé les deux points tu hérites !! ? " : Form2()"
    Citation Envoyé par Astartee
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       public Form2(Form1 formPrincipale) : Form2()
    le constructeur dans ce cas hérite !?
    !!

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Bah euh oui...
    Enfin "hériter" n'est peut-être pas le bon mot. C'est quoi le problème ?

    - tu n'as jamais vu cette syntaxe ?
    Eh bien ça fait que lors de l'appel du constructeur Form2(bla), on exécute d'abord les instructions contenues dans Form2() avant d'exécuter celles codées dans le constructeur à paramètre...

    - tu te demandes à quoi ça sert ?
    Dans le constructeur sans paramètre tu mets toutes les instructions "fixes" d'initialisation de ta Form, comme InitializeComponant() par exemple, et dans les constructeurs qui en "dérivent" tu mets les instructions supplémentaires qui utilisent les paramètres...
    Comme ça, si tu définis plusieurs constructeurs qui doivent tous effectuer une série de tâches données, pas besoin de copier-coller du code.
    Evidemment, si tu n'utilises qu'un seul constructeur dans ton code, ça ne sert à rien...

    - tu te demandes à quoi ça sert dans ce cas précis ?
    C'était une façon de dire que le constructeur à paramètre fait tout ce que faisais le constructeur sans paramètre déjà défini, plus une instruction, celle qui nous intéresse...



    !! ? ! !! pour parler comme toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire HTML5, cacher ou afficher des champs
    Par darkman19320 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/08/2014, 09h00
  2. Afficher / cacher partie d'un formulaire
    Par bob633 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/02/2010, 13h38
  3. Afficher/cacher cases d'un formulaire
    Par bidulee dans le forum Struts 1
    Réponses: 8
    Dernier message: 13/05/2009, 11h48
  4. afficher ou cacher des parties de formulaire
    Par DonKnacki dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 21/11/2007, 20h43
  5. Cacher et afficher un formulaire
    Par mbar dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 17/07/2007, 06h21

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