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 :

[C++/CLI] Mdi


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 11
    Points
    11
    Par défaut [C++/CLI] Mdi
    Bonjour a tous!

    voila, je debute sous Visual Studio .net express.

    je cherche a faire une application MDI.

    j'ai crée une Form1 sur laquelle j'ai precisé que c'etait un MDI container. J'ai ensuite crée une Form2, qui sera l'enfant.

    ce que je souhaite faire c'est que la form2 s'affiche lorsque je clique sur un element de mon menu, mais je ne sait pas comment faire.
    Faut-il preciser a Form1 que Form2 est un enfant ? si oui, ou ?

    Deuxieme petite question, un parent peut-il avoir plusieurs enfant ? et comment faire pour les declarer en tant que tel!

    Merci d'avance !

    Laurie.

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci ça m' a été trés utile !


    maintenant j'ai un autre probleme:


    comment acceder a une methode de la fiche parent a partir de la fiche enfant ?

    Merci !


    Laurie.

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Cela depend du niveau d'accessibilité de la méthode en question
    • * si elle est déclarée public: aucun souci tu disposes dans ta Form fille de la propriété MDIParent qui te donne accès au parent MDI en cours
      * sinon il te faudra :
      [list:84437562ec] - soit creer dans le Parent un accesseur public à cette méthode
      - soit peut être externaliser cette méthode comme static dans une classe métier si ton architecture s'en trouve améliorée
    [/list:u:84437562ec]
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    en fait le probleme vient du fait que MDIparent est une instance de la classe System::Windows::Forms::Form et non de ma Form personnalisée.

    donc je n'ai pas accés a mes methodes personnelles et c'est ça qui m'embete.

    j'ai bien essayer d'effectuer un cast sur MDIparent, mais il ne veut pas, me disant qu'il ne connait pas Form1 (la classe de ma fiche parente) ...

    donc je ne voit vraiment pas comment faire ... merci pour ton aide en tout cas neguib !


    Laurie.

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par schizette
    en fait le probleme vient du fait que MDIparent est une instance de la classe System::Windows::Forms::Form et non de ma Form personnalisée.
    Ben là je ne te suis plus, c'est quoi cette form personnalisée alors elle sert à quoi ?. Etait elle destinée au depart à être la MDIParent je ne comprends pas du tout la construction de ton projet
    Essayes d'être plus éclairant stp je ne suis ni à ta place ni dans ta tête
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    ok je vais essayer d'etre plus explicative


    j'ai une Form1 qui est une classe derivée de System::Windows::Form


    declarée comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public ref class Form1 : public System::Windows::Forms::Form
    {
     
    // code ...
    //fonction destinée a etre appellée depuis la fiche fille
     
       public: void removechild(int _btnnb);
     
    //code ...
     
    }
    donc je veux appeller depuis ma feuille fille la methode publique "removechild", j'ai besoin de cette methode, car elle ne fait pas qu'enlever la fiche fille, elle efface egalement un bouton qui est sur un panel de la feuille parent.

    donc dans la feuille fille, je veux appeller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MDIParent->removechild(numfeuille);
    et le probleme c'est que la methode "removechild" n'appartient pas a System::Windows::Forms::Form, mais a Form1 ...

    et il est apparement pas possible de caster MDIParent en "Form1"


    voila j'espere que j'ai été claire

    Laurie.

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par schizette
    ...
    et il est apparement pas possible de caster MDIParent en "Form1".
    oui Laurie je comprends mieux maintenant, j'ai une solution de rechange mais avant si tu veux bien, je voudrais verifier comment tu as tenté le transtypage
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    d'acccord alors je fait

    ((Form1^)(this->MdiParent))->removechild(mynum)
    mais pour faire ça il faut que j'inclue form1.h


    mais ce n'est pas possible vu que la feuille fille est incluse dans Form1!


    voila !


    Laurie.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    je fait remonter le sujet car je galere toujours ...



    neguib n'avait tu pas une solution de remplacement a me fournir s'il te plait

    c'est important, sans ça je n'ariverai jamais a terminer mon projet


    Milles Merci d'avance


    Laurie.

  11. #11
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ben la solution de rechange est assez banale
    Pense à prevoir un constructeur dans la Form enfant avec une surcharge qui reçoit en paramètre l'instance de la Form Parent, ayant préalablement déclaré au niveau de ta classe une variable du type de ta Form Parent, tu lui assigne le paramètre dans le constructeur.
    Voilà maintenant la Form enfant accede à tout ce que bon lui semble de l'instance de la Form Parent
    Bien sûr n'oublies pas d'utiliser cette surcharge lors de l'instanciation de la Form enfant par la Form parent en lui passant this
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci je suis vraiment idiote par moment !!!



    enfin résolu, je vais pouvoir avancer !


    Encore merci et a bientot pour un nouveau probleme je le préssent

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

Discussions similaires

  1. [C++/CLI] => Application MDI avec enfants ?
    Par MaTHieU_ dans le forum C++/CLI
    Réponses: 3
    Dernier message: 22/02/2006, 08h43
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    Réponses: 4
    Dernier message: 17/06/2002, 07h38
  4. pb fenêtre MDI
    Par dédé dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/06/2002, 18h41
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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