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 Récupération de donnée dans un panel créé dynamiquement

    Bonjour à tous,
    je souhaite récupérer des données depuis un panel que j'ai crée dynamiquement à partir d'un usercontrol "modèle"
    je créer plusieurs panel qui correspondent a autan d'élément qui compose mon produit.

    voici le code que j'utilise pour ajouter mes panel

    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
     
     public void AddCommandLine(string reference)
            {
     
                PanelsNumber++;
                PanelsLigneCommande[PanelsNumber] = new Panel();
                PanelsLigneCommande[PanelsNumber].Parent = panelLigneCommande;
     
                panelLigneCommande.Controls.Add(PanelsLigneCommande[PanelsNumber]);
     
     
                panelLigneCommande.AutoScroll = true;
     
                PanelsLigneCommande[PanelsNumber].Controls.Clear();
     
                LigneCommande LigneCommande = new LigneCommande(PanelsNumber, reference);
     
                PanelsLigneCommande[PanelsNumber].Controls.Add(LigneCommande);
     
                LigneCommande.Parent = PanelsLigneCommande[PanelsNumber];
     
                LigneCommande.Top = 0;
                LigneCommande.Left = 0;
                PanelsLigneCommande[PanelsNumber].Size = new System.Drawing.Size(1900, 50);
                PanelsLigneCommande[PanelsNumber].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
                LigneCommande.Dock = DockStyle.Fill;
                LigneCommande.BringToFront();
                LigneCommande.Show();
     
                PanelsLigneCommande[PanelsNumber].Top = PanelsNumber * 50;
                PanelsLigneCommande[PanelsNumber].Left = 0;
     
                PanelsLigneCommande[PanelsNumber].Show();
     
            }
    le problème est que je n'est pas accès au éléments des panels (listbox,textbox...) pour pouvoir récupérer les éléments saisies par l'utilisateur
    quelqu’un peut t’il m'aider? Au secours....

  2. #2
    Membre expérimenté
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 970
    Points : 1 473
    Points
    1 473

    Par défaut

    Je suppose que chaque contrôle hérite de ton contrôle modèle qui hérite lui-même de UserControl et que chacun de ces contrôles gère lui même ses propres données (en tout cas c'est ainsi que je l'aurais pensé).

    Tu peux donc créer une propriété commune dans ton contrôle modèle et chacun des contrôles renseigne cette propriété qui sera donc visible depuis l'extérieur moyennant un cast.

    Sinon, il reste la propriété Tag qui existe sur tous les contrôles du Framework et donc chacun de tes contrôles peut renseigner ce Tag qui est de type Object.

  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

    Merci pour ta réponse
    Etant débutant je n'est pas très bien compris ce que tu veut dire par "CAST" pour l'instant je me suis débrouillé en créant un tableau de panel dans la class de ma form principale mais ca m'oblige à déclarer un gros tableau de taille fixe...
    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
    45
    46
    47
    48
    49
    50
    51
     
     
    namespace GestArtefact.Commande
    {
        public partial class CreationCommande : UserControl
        {
            public CreationCommande()
            {
                InitializeComponent();
            }
     
            private Panel[] PanelsLigneCommande;
            public  LigneCommande[] LigneCommande;
            private int PanelsNumber=0;
     
    .....
     
            public void AddCommandLine(string reference)
            {
     
     
                PanelsLigneCommande[PanelsNumber] = new Panel();
                PanelsLigneCommande[PanelsNumber].Parent = panelLigneCommande;
     
                panelLigneCommande.Controls.Add(PanelsLigneCommande[PanelsNumber]);
     
     
                panelLigneCommande.AutoScroll = true;
     
                PanelsLigneCommande[PanelsNumber].Controls.Clear();
     
                ///////////////////////////////////////////////////////////////////////////
                if(PanelsNumber < 1)
                    { LigneCommande = new LigneCommande[100]; }
     
                LigneCommande[PanelsNumber] = new LigneCommande(PanelsNumber, reference);
                ///////////////////////////////////////////////////////////////////////////
                PanelsLigneCommande[PanelsNumber].Controls.Add(LigneCommande[PanelsNumber]);
     
                LigneCommande[PanelsNumber].Parent = PanelsLigneCommande[PanelsNumber];
     
                LigneCommande[PanelsNumber].BringToFront();
                LigneCommande[PanelsNumber].Show();
     
                PanelsLigneCommande[PanelsNumber].Top = PanelsNumber * 50;
                PanelsLigneCommande[PanelsNumber].Left = 0;
     
                PanelsLigneCommande[PanelsNumber].Show();
     
                PanelsNumber++;
            }
    si tu peut m'expliquer un peu plus la procédure pour mettre en œuvre ta solution je pense que ça sera plus efficace...

Discussions similaires

  1. Récupération des données dans liste déroulante dynamique
    Par shenmicke dans le forum PHP & MySQL
    Réponses: 11
    Dernier message: 02/09/2009, 16h02
  2. Récupération de données dans Frame dynamique
    Par julesclaude dans le forum Delphi
    Réponses: 4
    Dernier message: 24/12/2006, 17h44
  3. Réponses: 16
    Dernier message: 10/11/2005, 21h10
  4. Réponses: 6
    Dernier message: 23/10/2005, 12h24
  5. récupération de données dans un TDBControlGrid
    Par dableuf dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/11/2004, 14h25

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