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 :

Affichage de Contrôle Utilisateur dans un panel [Débutant]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Affichage de Contrôle Utilisateur dans un panel
    Bonsoir, Je suis en train de développer ma première grosse application en C# et j'ai quelques problèmes avec l'utilisation de l'objet Panel.
    Je souhaiterais réaliser une Winform principale que j'appelle "acceuil" dans laquelle j’ai déposé un Panel dans lequel je voudrais afficher tour a tour les différent contrôle utilisateur qui vont composer les vues de mon application.
    Seulement voila c'est la que les problèmes commencent....
    J'utilise le code suivant qui devrait provoquer l'affichage de mon premier contrôle utilisateur "ListeProduits" à l'ouverture de la WinForm "Acceuil" mais rien ne se passe..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
            private void Acceuil_Load(object sender, EventArgs e)
            {
                MainPanels = new Panel[9];
     
                MainPanels[0] = new Panel();
                MainPanels[1] = new Panel();
                panel1.AutoScroll = true;
                Produits.ListeProduits VueListeProduits = new Produits.ListeProduits();
                VueListeProduits.Parent = MainPanels[0];
                VueListeProduits.Top = 0;
                VueListeProduits.Left = 0;
                VueListeProduits.Size = MainPanels[0].ClientSize;
                VueListeProduits.Dock = DockStyle.Fill;
                VueListeProduits.BringToFront();
                VueListeProduits.Show();
            }
    quelqu’un peut il me venir en aide car je doit utiliser le même style de méthode pour remplire une vue avec des Contrôle utilisateur générique.

    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Bonsoir,

    Il me semble qu'il faut que tu fasses


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MainPanels[0].Controls.Add(VueListeProduits);
    Mettre l'attribut Parent ne suffit pas. Attention si tu ajoutes un Control a un panel, sa position sera relative a son panel parent maintenant.

    EDIT: Je viens de tester, Parent a l'air de suffir. Le problème se situe surement ailleurs.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,
    Merci pour ta reponse je vient de rajouter la ligne que tu m'à indiquer juste avant le .Show()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                VueListeProduits.BringToFront();
                MainPanels[0].Controls.Add(VueListeProduits);
                VueListeProduits.Show();
            }
    Ça n'a rien changer tu à une autre idée?
    En se qui concerne la position du contrôle dans le panel je ne m'en préoccupe pas trop pour le moment car je pense utiliser l'attribut Dockstyle.Fill du coup il occupera toute la place disponible.

  4. #4
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    Tes MailPanels[] sont créés dynamiquement, donc il faut que tu les assignes à ta forme principale (elle s'appelle Accueil, c'est ça?)de la même manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Accueil.Controls.Add(MainPanels[0]);
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour Nouanda,
    J'ai un soucis avec la syntaxe que tu m’a donné: je n'arrive pas à compiler j'ai un erreur "Une référence est requise pour la propriété ou le champs non statique 'Control.Controls'

  6. #6
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    En effet, pardon...
    Essaie plutôt this.Controls.Add(etc...)
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Il y a du mieux je vois s'afficher en haut a gauche de ma vue un truc tout petit qui ressemble à mon contrôle utilisateur mais je ne comprend pas pourquoi il ne prend pas tout l'espace disponible du panel vue que je lui ai indiquer de prendre tout l'espace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VueListeProduits.Dock = DockStyle.Fill;

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2017
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Pour ce que ça intéresse j'ai trouve la solution a mon problème:
    Il faut définir pour les 2 sous étages de fenêtres filles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     private Panel[] MesPanels;
    private void Affichage_Commande ()
            {
                panelLigneCommande.Controls.Clear();
                MesPanels = new Panel[500];
     
                for (int i = 0; i <= 499; i += 1)
                {
                    MesPanels[i] = new Panel();
                    MesPanels[i].Parent = panelLigneCommande;
     
                    panelLigneCommande.Controls.Add(MesPanels[i]);
     
                }
                for (int i = 0; i <= 499; i += 1)
                {
                    panelLigneCommande.AutoScroll = true;
     
                    MesPanels[i].Controls.Clear();
     
                    LigneCommande VUE = new LigneCommande(i);
     
                    MesPanels[i].Controls.Add(VUE);
     
                    VUE.Parent = MesPanels[i];
     
                    VUE.Top = 0;
                    VUE.Left = 0;
                    MesPanels[i].Size = new System.Drawing.Size(520, 30);
                    MesPanels[i].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
                    VUE.Dock = DockStyle.Fill;
                    VUE.BringToFront();
     
                    VUE.Show();
     
                    MesPanels[i].Top = i * 30;
                    MesPanels[i].Left = 0;
     
                    MesPanels[i].Show();
     
     
                }
            }

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

Discussions similaires

  1. [1.x] Affichage du groupe utilisateur dans sf_guard_user
    Par pixworld dans le forum Symfony
    Réponses: 6
    Dernier message: 09/05/2011, 11h13
  2. Réponses: 2
    Dernier message: 22/04/2011, 00h34
  3. Contrôle utilisateur dans un controle utilisateur
    Par Arsenic68 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/02/2010, 23h07
  4. [DX VB NET]Affichage dans un panel et fermeture
    Par lelulu dans le forum DirectX
    Réponses: 7
    Dernier message: 21/08/2006, 21h37

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