Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3528 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Ajouter des Controls dans un panel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajouter des Controls dans un panel

n°1473317
the big be​n
Posté le 10-11-2006 à 09:44:15  profilanswer
 

Bonjour,
 
J'implémente un panel dérivé d'un System.Windows.Forms.Panel.
Ce nouveau panel contiendra une entete fxe et un sous-panel contenant tout les controles que l'on voudra.
 
Mon probleme est que lorsque l'on ajoute un control, il s'ajoute dans le sous-panel et non dans le panel.
Je me disait qu'il faut donc que je joue avec le propriété this.Controls. il faut que this.Controls.add devienne this.SousPanel.Controls.add, idem pour les autres propriétés!
 
Comment puis je implémenter cela facilement?
 
D'avance merci de votre aide
 
ben  
 
 

mood
Publicité
Posté le 10-11-2006 à 09:44:15  profilanswer
 

n°1473745
moi23372
Posté le 10-11-2006 à 21:44:32  profilanswer
 

pkoi tu ne créer pas toi même un user control dans lequel tu mettrais ce que tu as besoin (panel, combo, textbox, etc...) c'est fait pour ça

n°1474327
the big be​n
Posté le 13-11-2006 à 09:24:58  profilanswer
 

Parceque j'hérite d'un composant déja créé et je n'ai pas envie de devoir réimplémenter tout.
De plus je n'ai pas envie d'un user control fixe mais de pouvoir récupérer ce composant pur plusieurs programmes avec des contenu totalement différents

n°1475344
MagicBuzz
Posté le 14-11-2006 à 17:19:27  profilanswer
 

j'ai pas bien pigé ce que tu veux faire.
 
tu peux poster quelques screens de ce que tu veux ?

n°1475352
MagicBuzz
Posté le 14-11-2006 à 17:43:01  profilanswer
 

Les puristes vont dire que je suis un gros goret, mais en tout cas ça marche, et c'est tout simple ;)
 

Code :
  1. using System;
  2. //using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. namespace MagicPanel
  6. {
  7.     public class MagicPanel : Panel
  8.     {
  9.         private Panel SubPanel;
  10.         public MagicPanel()
  11.         {
  12.             this.BackColor = Color.Pink;
  13.             Label testLabel = new Label();
  14.             testLabel.Text = "test en-tête";
  15.             this.Controls.Add(testLabel);
  16.             SubPanel = new Panel();
  17.             SubPanel.BackColor = Color.Blue;
  18.             this.Controls.Add(SubPanel);
  19.             SubPanel.Top = testLabel.Height + 10;
  20.             SubPanel.Height = this.Height - testLabel.Height - 30;
  21.             SubPanel.Left = 10;
  22.             SubPanel.Width = this.Width - 30;
  23.         }
  24.         protected override void OnControlAdded(ControlEventArgs e)
  25.         {
  26.             //base.OnControlAdded(e);
  27.             if (this.Controls.Count > 2)
  28.             {
  29.                 this.SubPanel.Controls.Add(e.Control);
  30.                 this.Controls.Remove(e.Control);
  31.             }
  32.         }
  33.     }
  34. }


 

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. namespace WindowsApplication1
  9. {
  10.     public partial class Form1 : Form
  11.     {
  12.         public Form1()
  13.         {
  14.             InitializeComponent();
  15.         }
  16.         private void Form1_Load(object sender, EventArgs e)
  17.         {
  18.             Button testBtn = new Button();
  19.             testBtn.Text = "youpi";
  20.             this.magicPanel1.Controls.Add(testBtn);
  21.         }
  22.     }
  23. }

n°1475356
MagicBuzz
Posté le 14-11-2006 à 17:45:47  profilanswer
 

http://magicbuzz.multimania.com/files/magicpanel.png

n°1475402
moi23372
Posté le 14-11-2006 à 19:55:37  profilanswer
 

pour faire ça autant faire un user control excuse moi

n°1475577
MagicBuzz
Posté le 15-11-2006 à 09:53:26  profilanswer
 

je ne juge pas la demande, je ne fais que répondre à la question.
 
ceci dit, ça ne change rien que dans ton user control, t'auras toujours le même problème... le .Controls de ton user control ne sera pas le .Control du panel qu'il contient, donc dans tous les cas t'es condamné à faire le même genre de bidouille...

n°1475910
the big be​n
Posté le 15-11-2006 à 15:52:35  profilanswer
 

C'est a tres peu de choses ce que je fesait déja mais, quand j'essaie de faire glisser un boutton dans mon panel, il me fait : "Child is not a child of this parent"

n°1475914
MagicBuzz
Posté le 15-11-2006 à 15:59:09  profilanswer
 

je taist

mood
Publicité
Posté le 15-11-2006 à 15:59:09  profilanswer
 

n°1475921
MagicBuzz
Posté le 15-11-2006 à 16:08:14  profilanswer
 

en effet, ça fait potpot sur la moquette là...

n°1475946
the big be​n
Posté le 15-11-2006 à 16:47:50  profilanswer
 

lol


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Ajouter des Controls dans un panel

 

Sujets relatifs
[java] ajouter/afficher des Vector dans une JTableajouter bouton mise en forme dans FCKEditor
Comment ajouter adsense dans un fichier JScode pour ajouter aux favoris
[VBS] : ajouter un enregistrement dans une BDD SQL[C#/Excel] Comment ajouter une liste déroulante dans une cellule ?
Balise HTML correpondant à un panelheader() : Ajouter qqch dans le <body>
Comment ajouter une nouvelle API comme JCC à J2SE déjà installé?[PHP] Ajouter un tag (image) à une photo
Plus de sujets relatifs à : Ajouter des Controls dans un panel


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)