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 :

lien entre des forms


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut lien entre des forms
    Je souhaite faire une application en C++ avec des fenêtres grâce Visual C++.
    J'arrive a faire mes fenêtres mais je n'arrive pas a faire que quand je clique sur un bouton ça m'amène a une autre fenêtre.

    Comment faire ??

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    Slt je crois que tu n'est pas ton le bon forum car ici c'est C# a ne pas confondre avec C++ quoi qu'il en soit la syntaxe est tres ressemble car C# herite de C++ est l'evolution selon microsoft et non Darwin

    C->C++->C# oui on ajoute ++ a chaque fois alors a quand C++++++

    bon en C# pour faire apparaitre une autre form

    Form2 frm = new Form2();
    frm.Show();

    sa doit etre equivalent en C++ mais va poser la question sur le forum C++

    Merci

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Je comprend pu rien sur le forum C++ on me dit de venir ici et ici c'est l'inverse

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Je pense que le mieux est dans le sous forum Managé/Natif
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  5. #5
    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
    le mieux est le forum C++/CLI,
    regarde dans la faq C++/CLI http://dotnet.developpez.com/faq/cpp...rms#newwinform

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    J'ai été dans la FAQ grace au lien

    Comment créer et afficher une nouvelle Winform ?

    auteur : nico-pyright(c)

    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).


    #include "Form2.h"

    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éé.


    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.
    Mais je ne sais pas ou inclure
    Form2 ^maForm2 = gcnew Form2();
    maForm2->Show();

  7. #7
    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
    et bien ca dépend, tu veux que la nouvelle form s'ouvre à quelle occasion ?
    si c'est lors du click sur un bouton, il faut le mettre dans la méthode qui est générée lors de l'événement du click sur le bouton (pour savoir comment générer la méthode click, voir dans ce tuto http://nico-pyright.developpez.com/t...s/#LhelloWorld , c'est expliqué pour le label, mais le principe est le meme)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Si j'ai bien compris il faut que j'introduise

    Form2 ^maForm2 = gcnew Form2();
    maForm2->Show();
    dans mon code source

    #include "Form2.h"

    #pragma once


    namespace projet1 {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System:ata;
    using namespace System:rawing;

    /// <summary>
    /// Description résumée de Form1
    ///
    /// AVERTISSEMENT : si vous modifiez le nom de cette classe, vous devrez modifier la
    /// propriété 'Nom du fichier de ressources' de l'outil de compilation de ressource managée
    /// pour tous les fichiers .resx dont dépend cette classe. Dans le cas contraire,
    /// les concepteurs ne pourront pas interagir correctement avec les ressources
    /// localisées associées à ce formulaire.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
    Form1(void)
    {
    InitializeComponent();
    //
    //TODO : ajoutez ici le code du constructeur
    //
    }

    protected:
    /// <summary>
    /// Nettoyage des ressources utilisées.
    /// </summary>
    ~Form1()
    {
    if (components)
    {
    delete components;
    }
    }
    private: System::Windows::Forms::Button^ button1;
    protected:

    private:
    /// <summary>
    /// Variable nécessaire au concepteur.
    /// </summary>
    System::ComponentModel::Container ^components;

    #pragma region Windows Form Designer generated code
    /// <summary>
    /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    /// le contenu de cette méthode avec l'éditeur de code.
    /// </summary>
    void InitializeComponent(void)
    {
    this->button1 = (gcnew System::Windows::Forms::Button());
    this->SuspendLayout();
    //
    // button1
    //
    this->button1->Location = System:rawing:oint(51, 76);
    this->button1->Name = L"button1";
    this->button1->Size = System:rawing::Size(194, 106);
    this->button1->TabIndex = 0;
    this->button1->Text = L"button1";
    this->button1->UseVisualStyleBackColor = true;
    this->button1->Click += gcnew System::EventHandler(this, &Form1::button_click);
    //
    // Form1
    //
    this->AutoScaleDimensions = System:rawing::SizeF(6, 13);
    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    this->ClientSize = System:rawing::Size(292, 266);
    this->Controls->Add(this->button1);
    this->Name = L"Form1";
    this->Text = L"Form1";
    this->ResumeLayout(false);

    }
    #pragma endregion

    private: System::Void button_click(System::Object^ sender, System::EventArgs^ e) {


    }

    };
    }
    apres la ligne

    private: System::Void button_click(System::Object^ sender, System::EventArgs^ e) {

  9. #9
    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
    tu as bien compris

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    merci mais quand je test mon projet il y a 4 erreurs
    ------ Début de la génération : Projet : projet1, Configuration : Debug Win32 ------
    Compilation en cours...
    projet1.cpp
    c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(89) : error C2065: 'Form2' : identificateur non déclaré
    c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(89) : error C2065: 'maForm2' : identificateur non déclaré
    c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(89) : error C2061: erreur de syntaxe : identificateur 'Form2'
    c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(90) : error C2227: la partie gauche de '->Show' doit pointer vers un type class/struct/union/générique
    le type est ''unknown-type''

  11. #11
    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
    tu dois débuter en C++, peut-etre qu'un ptit cours ou un ptit bouquin pourrait t'aider

    il faut bien sur inclure dans ce fichier le fichier .h qui contient la définition de form2


  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    elle est déjà inclue a la première ligne du code

  13. #13
    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
    est-ce que Form2 inclu également form1.h ?
    si oui voir dans la faq c++/cli a cet endroit http://dotnet.developpez.com/faq/cpp...s#crossinclude
    si non, uploade ton projet que je jette un coup d'oeil

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Ça depend oui et non car je souhaite faire un programme où comme dans les programmes d'installation quand tu clique sur le bouton tu accédé a " une autre page "

  15. #15
    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
    est-ce que la solution des déclarations anticipées solutionne ton problème ?

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Après une absence hier je recréer un nouveau projet et sa marche.

    Mais il s'ouvre une deuxième fenêtre lorsque je clique sur le bouton

    comment faire pour que seulement le contenu de la fenêtre change??

    Merci

  17. #17
    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
    ah ba c'était pas la question posée

    pour ca, plusieurs méthodes, mais peut-etre que le plus simple serait de cacher la premiere fenetre et d'ouvrir la deuxieme à la meme position.

    Sinon, utiliser 2 panels ou 2 usercontrols

Discussions similaires

  1. lien entre des fenetres en C++
    Par d1e2w dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 28/08/2007, 23h05
  2. Réponses: 2
    Dernier message: 21/02/2007, 12h54
  3. Lien entre 2 Forms
    Par beral dans le forum C++Builder
    Réponses: 3
    Dernier message: 04/08/2006, 00h09
  4. Liens entre des classes héritées
    Par qwiqwi dans le forum C++
    Réponses: 12
    Dernier message: 09/02/2006, 15h36
  5. Liens entre des bases Access
    Par Zorg44 dans le forum Access
    Réponses: 2
    Dernier message: 17/11/2005, 00h54

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