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 Forms Discussion :

Débutant C# - Application MDI


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Débutant C# - Application MDI
    Salut tout le monde



    Je veux faire une application MDI ou seulement la zone encadré en rouge change, j'ai déjà fait les autres formes, je veux que le panel en bleu reste fixe tout le temps.

    Je suis nouveau dans visual C# donc j'aimerais bien une explication pas a pas pour mon problème si c'est possible, j'ai déjà cherché des solutions sur le net pas trouvé ce que je cherche vraiment.

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Evite MDI qui est peu ou prou obsolete.

    Pour ta présentation, il suffit de mettre dans chaque forme un Panel général (avec Dock=DockStyle.Fill) qui contient tout les controls de la forme.

    Il suffit ensuite de faire dans la forme que tu veux afficher en avant plan :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forme_a_afficher.Panneau_General.Parent=Ma_Forme_Principale.Panneau_Rouge ;
    Forme_a_afficher.Panneau_General.BringToFront() ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Où d'utiliser des UserControl à placer dans le panel rouge.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses, j'ai essayé de reproduire le code de Graffito mais je n'arrive pas a accéder aux composants sur l'autre forme dont le panel...., je sais pas comment faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            private void button1_Click_1(object sender, EventArgs e)
            {
                Form2 myform2 = new Form2();
                myform2.panel1.parent = this.panel2;
            }
    j'ai l'erreur
    Erreur 1 'forum.Form2.panel1' est inaccessible en raison de son niveau de protection
    Je suis nouveau, vraiment nouveau, j'ai aucune idée comment faire, je comprends si vous m'envoyez vers des liens de cours sur certains aspects du langage et les winforms, mais j'aimerais bien une solution directe sur mon cas, ça m'apprendra un nouveau truc et ça sera utile pour d'autres.

    Merci d'avance

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Re

    j'ai essayé de changer le niveau de protection lors de la création des composants de private vers public, et ben ça a marché, j'arrive à accéder au panel et le mettre dans le paneau de la forme principale

    Avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public System.Windows.Forms.Panel panel1;
    Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private System.Windows.Forms.Panel panel1;
    Je trouve ça plus facile que je le pensais, la question que je me pose:

    - y'a t il des inconvénients a faire ca ?

    Voila MERCI

  6. #6
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    A mon goût, avoir accès aux éléments d'une form depuis une autre n'est pas ce qu'il y a de meilleur.
    Moi je ferais, comme le dis laedit, des contrôles utilisateurs dans lesquels tu peux mettre n'importe quoi.
    Je créerais ces contrôles puis les mettrais dans une liste.
    Sur les clics de tes boutons tu affiche le contrôle utilisateur qui se trouve à l'index untel de ta liste.....

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    un mince conseil, lire un cours C#.. et celui présent sur le site est TRES complet et très facile à lire
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  8. #8
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Pour éviter de passer les controls de Private à Public, crée des property ou des procedures dédiées Internal ou Public dans les formes comme ceci par exemple.

    Dans la forme principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forme_a_afficher.Set_Panneau_General_Parent(Panneau_Rouge) ;
    Dans la forme à afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    internal void Set_Panneau_General_Parent(Panel ParentPanel)
    {
       Panneau_General.Parent=ParentPanel ;
       Panneau_General.BringToFront() ;
    }
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci Graffito pour l'astuce ça marche nikel

    Merci à tout le monde pour votre aide et vos conseils.

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

Discussions similaires

  1. [aide] cherche tutoriel application MDI
    Par Bilouzzz dans le forum MFC
    Réponses: 1
    Dernier message: 19/09/2005, 17h03
  2. [API]Application MDI
    Par LordBob dans le forum MFC
    Réponses: 1
    Dernier message: 05/07/2005, 16h39
  3. Réponses: 4
    Dernier message: 14/02/2005, 19h41
  4. Fiche Login avec une application MDI
    Par Andry dans le forum Composants VCL
    Réponses: 6
    Dernier message: 13/09/2004, 11h46

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