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 :

Ajouter des controles dynamiquement à un pannel


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut Ajouter des controles dynamiquement à un pannel
    Bonjour,
    Je souhaite afficher dans une fenetre la liste de réponse sur un message comme le cas des forums. Au début j'ai une zone de texte qui affiche le sujet puis le contexte dans une autre zone de texte. Puis tant qu' il y a des réponses je crée deux autres zones de textes et je les remplis. Le problème est comment ajouter à chaque fois ces controles au pannel. Comment je dois ajouter un bar de défilement quand la fenretre est trop petite.

    Merci

  2. #2
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Par défaut
    Tous les contrôles ont une classe propre à eux... Button pour le bouton, Textbox pour le textbox etc....
    donc tu les instancie, les paramètre (textbox1.Text ="toto") par exemple et enfin les ajoute au panel grace à la méthode Controls qui va lister tous le controles qu'elle contient : panel1.Controls.Add(textbox1)

    je ne sais pas si j'ai été assez clair

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut
    Merci pour votre réponse, est ce que le scroll bar s'ajoute automatiquement quand il y a plusieurs composant sur le panel ?

  4. #4
    Membre chevronné Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Par défaut
    Citation Envoyé par mimosa803 Voir le message
    Merci pour votre réponse, est ce que le scroll bar s'ajoute automatiquement quand il y a plusieurs composant sur le panel ?
    Il faut mettre la propriété autoscroll à true:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panel1.AutoScroll = true;

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut
    Bon j'ai ajouté la propriété que vous avez mentionnée mais j'obtiens toujours un seul affichage sur le panel malgré que j'ai une boucle : voilà mon code :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     panel1.AutoScroll = true;
                //reponse est un DataTable qui contient dans mon cas 4 rows
                    for (int i = 0; i < reponse.Rows.Count; i++)
                    {
                       Label label1 = new System.Windows.Forms.Label();
                       Label label2 = new System.Windows.Forms.Label();
                       Label label3 = new System.Windows.Forms.Label();
                       Label label4 = new System.Windows.Forms.Label();
                       Label label5 = new System.Windows.Forms.Label();
                       RichTextBox richTextBox1 = new System.Windows.Forms.RichTextBox();
     
                        // label1
                        // 
                       label1.AutoSize = true;
                       label1.Location = new System.Drawing.Point(31, 40);
                       label1.Name = "label1";
                       label1.Size = new System.Drawing.Size(35, 13);
                       label1.TabIndex = 0;
                       label1.Text = reponse.Rows[i].Field<String>("idlogin");
                        // 
                        // richTextBox1
                        // 
                       richTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
                       richTextBox1.Location = new System.Drawing.Point(162, 71);
                       richTextBox1.Name = "richTextBox1";
                       richTextBox1.ReadOnly = false;
                       richTextBox1.Size = new System.Drawing.Size(344, 104);
                       richTextBox1.TabIndex = 1;
                       richTextBox1.Text = reponse.Rows[i].Field<String>("commentaire");
                        // 
                        // label2
                        // 
                       label2.AutoSize = true;
                       label2.Location = new System.Drawing.Point(31, 90);
                       label2.Name = "label2";
                       label2.Size = new System.Drawing.Size(105, 13);
                       label2.TabIndex = 2;
                       label2.Text = "Date de publication :";
                        // 
                        // label3
                        // 
                       label3.AutoSize = true;
                       label3.Location = new System.Drawing.Point(31, 132);
                       label3.Name = "label3";
                       label3.Size = new System.Drawing.Size(35, 13);
                       label3.TabIndex = 3;
                       label3.Text = "label3";
                        // 
                        // label4
                        // 
                       label4.AutoSize = true;
                       label4.Location = new System.Drawing.Point(159, 40);
                       label4.Name = "label4";
                       label4.Size = new System.Drawing.Size(40, 13);
                       label4.TabIndex = 4;
                       label4.Text = "Sujet : ";
                        // 
                        // label5
                        // 
                       label5.AutoSize = true;
                       label5.Location = new System.Drawing.Point(242, 40);
                       label5.Name = "label5";
                       label5.Size = new System.Drawing.Size(35, 13);
                       label5.TabIndex = 5;
                       label5.Text = "label5";
     
                       panel1.Controls.Add(label1);
                       panel1.Controls.Add(label4);
                       panel1.Controls.Add(label5);
                       panel1.Controls.Add(richTextBox1);
                       panel1.Controls.Add(label2);
                       panel1.Controls.Add(label3);
     
     
                    }

  6. #6
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Par défaut
    C'est normal
    Dans ta boucle, tu crée a chaque fois des nouveaux labels a la place des anciens... donc elles sont redessinnés par dessus et tu a l'impression de n'en voir que 4...

Discussions similaires

  1. ajouter des control Asp dynamiquement ?
    Par dimmu dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/05/2007, 13h54
  2. Réponses: 1
    Dernier message: 19/08/2006, 19h40
  3. ajouter des control dans une onglet de sstab sous VB6
    Par aymane_farissi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/09/2005, 13h44
  4. [VB.NET] Ajout de controles dynamiquement
    Par A77 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2005, 09h00
  5. Réponses: 6
    Dernier message: 18/04/2005, 21h12

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