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

  1. #1
    Membre habitué
    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
    Points : 194
    Points
    194
    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
    Consultant SharePoint

  2. #2
    Membre régulier
    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
    Points : 117
    Points
    117
    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 habitué
    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
    Points : 194
    Points
    194
    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 ?
    Consultant SharePoint

  4. #4
    Membre averti 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
    Points : 426
    Points
    426
    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 habitué
    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
    Points : 194
    Points
    194
    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);
     
     
                    }
    Consultant SharePoint

  6. #6
    Membre régulier
    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
    Points : 117
    Points
    117
    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...

  7. #7
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Si tu veux afficher le contenu d'une DataTable, tu as des composant grille (en particulier la DataGridView) qui s'en chargent. Pas la peine de créer des labels, des richtexbox à la main.
    ಠ_ಠ

  8. #8
    Membre habitué
    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
    Points : 194
    Points
    194
    Par défaut
    Bonjour,

    Le problème que je ne veux pas afficher le DataTable dans un datagridview, mais je voulais faire une interface qui ressemble à une interface de forum qui affiche la liste des réponses d'un message.

    Merci
    Consultant SharePoint

  9. #9
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    OK
    Alors tu as interet a creer un User Control, qui contiendrait tes labels et ta richtextbox ; ensuite, tu n'as plus qu'a rajouter ce User Control dans ta fenetre.
    ಠ_ಠ

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