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++/CLI Discussion :

Afficher Form2, masquer Form1 : tutoriel ne fonctionne pas


Sujet :

C++/CLI

  1. #1
    Membre du Club Avatar de Hemophilius
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 68
    Points
    68
    Par défaut Afficher Form2, masquer Form1 : tutoriel ne fonctionne pas
    Citation Envoyé par nico-pyright
    Il faut dans un premier temps créer une nouvelle Winform :
    Click droit sur le projet --> Add -- New Item --> UI --> Winforms Form.
    Là, nommez-la comme bon vous semble, par exemple Form2. Visual Studio génère donc une nouvelle classe, et la winform est modifiable également à travers l'IDE.

    Pour afficher cette nouvelle form, par exemple depuis un click sur un bouton de la première form, il faut inclure le Form2.h dans le fichier .h de notre première Form (Form1.h par défaut).

    Ensuite dans l'événement du click sur le bouton (ou autre), il faut instancier la classe et appeler la méthode Show() sur l'objet créé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form2 ^maForm2 = gcnew Form2();
    maForm2->Show();
    Notez que la méthode Show() affiche la fenêtre simplement. On peut également utiliser ShowModal() pour qu'elle soit modale comme une boîte de dialogue.
    J'ai suivi à la lettre. J'ai placé #include "Form2.h" avant la balise #pragma once de Form1.h. OK pendant le débogage, quand on appuie sur le bouton, la form s'affiche... mais autant de fois que l'on pousse sur le bouton !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        private: System::Void button1_Click(System::Object^  sender, 
    System::EventArgs^  e) {    
                    Form1 ^Etape1 = gcnew Form1();
                    Etape1->Hide();
                    Form2 ^Etape2 = gcnew Form2();
                    Etape2->Show();
    Comment se fait-il que la Form1 ne se masque pas ? Elle devrait...
    En fait, j'aimerais faire une sorte d'assistant genre Assistant Installer un programme. Donc avec un bouton suivant, et un bouton précédent qui permettent de naviguer entre les différentes étapes.
    J'avais pensé à un système de contrôles visibles et invisibles, tout cela sur une même Form, mais récemment j'ai eu des problèmes à cause d'une groupBox de m*rde qui a tout fait foirer. Résultat je dois recommencer... Et je sais que ce n'était pas la bonne solution.

    Donc voilà ma question : comment faire cela : Form1 -> on pousse sur suivant -> elle se change en Form2 -> etc.

    (PS : Application WinForms en .NET)

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ca devrait fonctionner effectivement, je vais essayer de te faire un petit exemple vite fait si j'ai le temps dans la journée

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tiens, en relisant, je me pose une question ...
    Le bouton_click, il fait partie de la Form1 ?

    Si c'est le cas et que c'est la form où tu cliques que tu veux fermer, il faut faire un this->Hide() au lieu d'instancier une nouvelle form

  4. #4
    Membre du Club Avatar de Hemophilius
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 68
    Points
    68
    Par défaut
    le button_click1 fait bien partie de form1.h. J'essaye dès que je peux (je ne suis pas sur mon ordinateur, il est mort... donc le temps de récupérer mes données...).
    Merci en tout cas pour tes réponses !!!

Discussions similaires

  1. Afficher une div : display:block; ne fonctionne pas bien
    Par Invité dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/03/2013, 08h09
  2. Réponses: 1
    Dernier message: 26/02/2011, 19h26
  3. Jtable tutoriel ne fonctionne pas
    Par peofofo dans le forum Composants
    Réponses: 10
    Dernier message: 16/01/2011, 07h39
  4. afficher/masquer fonctionne pas sous firefox
    Par tucdual dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/10/2010, 06h08
  5. Form1.Cursor := crHourGlass; ne fonctionne pas
    Par Didier100 dans le forum Delphi
    Réponses: 4
    Dernier message: 09/10/2006, 13h52

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