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

afiicher une fenetre dans un panel


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Points : 47
    Points
    47
    Par défaut afiicher une fenetre dans un panel
    Bonjour tt le monde;
    j'ai créé une fenetre form1 dans laquelle j'ai deposé un splitContainer1 et un boutton1. j'ai cééé une deuxiéme fenetre form2.
    je voulais quand je clique sur le boutton1 d'afficher la fenetre form2 dans le panel2 du splitContainer1. je ny arrive pas.
    Voici le code que j'ai écris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     private void button1_Click(object sender, EventArgs e)
            {
                Form2 Fen;
                Fen = new Form2();
                Fen.Parent = splitContainer1.Panel2;
                Fen.Show();
     
            }
    le debogage est reissu mais à l'execution il se plante et il m'affiche:
    Impossible d'ajouter un contrôle de premier niveau à un contrôle.

    Est ce que qulqu'un peut m'aider. Merci

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Oui, on ne peut pas (ainsi que l'intitulé du message d'erreur l'indique) ajouter une form dans un contrôle.

    Je n'en vois d'ailleurs pas vraiment l'interêt, et ne comprend pas pourquoi tu veux ajouter la forme plutôt que le contrôle utilisateur contenant les éléments de dialogue.

    Accessoirement, ne pas confondre les notions de Parent et de Container.

    Le Parent est l'objet que tu passes éventuellement en paramètre à la méthode Show de la form.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Bluedeep
    Oui, on ne peut pas (ainsi que l'intitulé du message d'erreur l'indique) ajouter une form dans un contrôle.

    Je n'en vois d'ailleurs pas vraiment l'interêt, et ne comprend pas pourquoi tu veux ajouter la forme plutôt que le contrôle utilisateur contenant les éléments de dialogue.

    Accessoirement, ne pas confondre les notions de Parent et de Container.

    Le Parent est l'objet que tu passes éventuellement en paramètre à la méthode Show de la form.

    En fait je voulais deposer sur le panel1 du splitContainer des bouttons et sur le penel2 des fenetres. C'est à dire qu'à chaque fois que je clique sur un boutton donné du panel1 il m'affiche sur le panel2 une fenetre pour saisir des données dans une base de données.
    Je ne sais pas si c'est une bonne méthode d'utiliser des fenetres.
    Merci.

  4. #4
    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 194
    Points
    5 194
    Par défaut
    Salut

    Je ne jugerais pas de la pertinence de ton choix, je dirais simplement, que de mémoire , si tu souhaites afficher une fenetre dans une autre fenetre, le "secret" vient du fait de positionner la fenetre à insérer en TopLevel = False

    Maintenant, peut etre que l'approche Mdi (multi document interface) serait
    à privilégier dans ton contexte....

    enfin, c'est tjs pareil, plus facile de donner des conseils si on a une vue "d'ensemble" de ce que tu souhaites réaliser

    The Monz, Toulouse (en vacances en normandie)

  5. #5
    Membre du Club Avatar de sarah_s
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 61
    Points
    61
    Par défaut
    bonjour
    //fa est la forme à ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
                fa.TopLevel = false;
                fa.FormBorderStyle = FormBorderStyle.None;
                fa.Parent = this.panel1;
                fa.aTop = 0;
                fa.Left = 0;
                fa.Size = this.panel1.ClientSize;
                fa.Dock = DockStyle.Fill;
                fa.BringToFront();
                fa.Show();
    si ça se trouve tu a deja trouvé la solution ,mais sinon ça pourrait etre utile à d'autres personnes.
    salut

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par sarah_s
    bonjour
    //fa est la forme à ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
                fa.TopLevel = false;
                fa.FormBorderStyle = FormBorderStyle.None;
                fa.Parent = this.panel1;
                fa.aTop = 0;
                fa.Left = 0;
                fa.Size = this.panel1.ClientSize;
                fa.Dock = DockStyle.Fill;
                fa.BringToFront();
                fa.Show();
    si ça se trouve tu a deja trouvé la solution ,mais sinon ça pourrait etre utile à d'autres personnes.
    salut
    merci pour ceux qui m'ont donné de reponse.
    en fait il faut déclarer que la nouvelle fenetre soit une fenetre enfant d'une autre fenetre sinon ça ne marhera pas je pense.

    // Form2 F;

    en fait il faut que la fenetre ici la fenetre référencée par (this) soit
    une fenetre MDI. Apres j'utilise la suite:

    F.MdiParent = this;
    F.Parent = splitContainer1.Panel2;
    splitContainer1.Panel2.Controls.Add(F);
    F.Show();

Discussions similaires

  1. [C#] Comment ouvrir une form dans un panel
    Par Le Basque dans le forum Windows Forms
    Réponses: 7
    Dernier message: 28/02/2007, 12h31
  2. afficher une fenetre dans un panel
    Par adgabd dans le forum Delphi
    Réponses: 9
    Dernier message: 12/07/2006, 13h35
  3. Réponses: 4
    Dernier message: 09/05/2006, 11h21
  4. VB6]cacher une fenetre dans la barre des taches en une icone
    Par bouazza92 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/12/2005, 23h37
  5. [Drag & Drop] Mettre une fiche dans un panel
    Par corwin_d_ambre dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/01/2004, 10h46

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