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

Windows Discussion :

Methode Show() fenetre fille


Sujet :

Windows

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 311
    Points : 127
    Points
    127
    Par défaut Methode Show() fenetre fille
    Bonjour,

    je travail sur un projet en windows form (c++).
    Et j'ai un souci pour afficher une fenetre a partir d'une autre avec la methode Show(). alors voila:

    j'ai une fenetre mere (IsMdiContainer=true) Form^ Projet, qui doit m'ouvrir une fenetre que j'ai deja créé, Form^ Form1, à partir d'un menu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private: System::Void clientToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    					 Form^ Form1;
    					 Form1->Show();	
    			 }
    Ceci ne fonctionne pas. Et pourtant j'ai bien inclue le fichier Form1.h

    Et voici l'erreur :
    Une exception non gérée du type 'System.NullReferenceException' s'est produite dans System.Windows.Forms.dll

    Informations supplémentaires*: La référence d'objet n'est pas définie à une instance d'un objet.

    Je vien de la prog windows, c'est surement tout bete mais je ne trouve pas.
    Quelqu'un a-t-il réponse à mon probleme?


    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Le "^" dans "Form^", c'est pour référence à un objet dans le pool mémoire .NET. Cette référence a le même comportement qu'un pointeur "*" en C++/CLI.
    Donc après "Form^ Form1;", Form1 est le nom d'une variable de type "System::Windows::Forms::Form^", soit ~NULL.

    Bin, comme en C++ de base, suivre un pointeur NULL, c'est jamais bon.

    Essayez avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private: System::Void clientToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    					 Form1^ toto = gcnew Form1();
    					 toto->Show();	
    			 }

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 311
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Le "^" dans "Form^", c'est pour référence à un objet dans le pool mémoire .NET. Cette référence a le même comportement qu'un pointeur "*" en C++/CLI.
    Donc après "Form^ Form1;", Form1 est le nom d'une variable de type "System::Windows::Forms::Form^", soit ~NULL.

    Bin, comme en C++ de base, suivre un pointeur NULL, c'est jamais bon.

    Essayez avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private: System::Void clientToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    					 Form1^ toto = gcnew Form1();
    					 toto->Show();	
    			 }
    Parfait sa marche merci, mais le souci c'est que je veux une fenetre qui soit contenu dans la fenetre parent, dans mon cas la fenetre parent est un MDIcontainer, la nouvelle fenetre cree doit etre dans ce conteneur or il ne l'ai pas, comment faire ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private: System::Void clientToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    					 Form1^ toto = gcnew Form1();
    					 toto->MdiParent = this;
    					 toto->Show();	
    
    			 }

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 311
    Points : 127
    Points
    127
    Par défaut
    Parfait Merci bacelar ! ça marche tres bien.

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

Discussions similaires

  1. Bloquer fenetre mere attendant resultat fenetre fille
    Par fredo3500 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 16/06/2010, 00h56
  2. Ecrire du texte dans les fenetres filles (MDI)
    Par trilomdor dans le forum MFC
    Réponses: 9
    Dernier message: 23/06/2004, 17h00
  3. [MFC] Maximiser à l'ouverture une fenetre fille !
    Par leskritiques dans le forum MFC
    Réponses: 15
    Dernier message: 28/04/2004, 08h50
  4. Réponses: 5
    Dernier message: 08/01/2004, 15h05
  5. [MDI] Ouvrir immédiatement une fenetre fille
    Par phil56 dans le forum C++Builder
    Réponses: 8
    Dernier message: 12/03/2003, 14h27

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