2009-08-28 7 views
3

J'ai défini un panneau personnalisé avec un panneau de disposition de table à l'intérieur. Cependant, lorsque j'ai utilisé ce contrôle sur un winform, je n'ai pas accès aux propriétés du panneau de disposition de table. (Je veux par exemple ajouter une colonne ou ancrer un autre contrôle dans une cellule). J'essaye de changer la propriété de modificateur en public, mais cela ne fonctionne toujours pas. Que puis-je faire pour voir et modifier les propriétés de la disposition du panneau? En fait, la question peut être plus générique: comment accéder/modifier/déplacer les contrôles contenus dans un usercontrol personnalisé?C# usercontrol comment accéder à tous les contrôles enfants

Thx

Répondre

6

Vous devez exposer les propriétés que vous souhaitez modifier dans votre contrôle utilisateur. Par exemple, pour modifier la propriété de comptage de colonne du contrôle de la mise en page de table, de votre contrôle utilisateur, vous devez exposer la propriété ColumnCount:

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    public int ColumnCount 
    { 
     get 
     { 
      return this.tableLayoutPanel1.ColumnCount; 
     } 

     set 
     { 
      this.tableLayoutPanel1.ColumnCount = value; 
     } 
    } 
} 

Vous pouvez également alors commencer à utiliser certains attributs pour contrôler la façon dont votre contrôle utilisateur est affiché dans Visual studio, par exemple, ce qui précède peut être modifié comme ceci:

[DefaultProperty("ColumnCount")] 
public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    [Description("Gets or sets the column count of the table layout.")] 
    [Category("TableLayout")] 
    [DefaultValue(2)] 
    public int ColumnCount 
    { 
     get 
     { 
      return this.tableLayoutPanel1.ColumnCount; 
     } 

     set 
     { 
      this.tableLayoutPanel1.ColumnCount = value; 
     } 
    } 
} 

Ceci définit la propriété par défaut de l'ensemble de contrôle utilisateur « NbreColonnes », et donne la colonne PropertyCount une description, un défaut valeur de 2 et définit dans quelle catégorie il doit être affiché dans la fenêtre des propriétés du concepteur. Il y a beaucoup plus à faire avec un contrôle utilisateur pour ajouter un support de conception.

+0

Ok pour ajouter une propriété à la fenêtre de propriétés du concepteur. Mais pouvons-nous également ajouter un support graphique comme les lignes et les colonnes à afficher dans le concepteur? Ou les outils de modification de lignes et de colonnes? – Toto

Questions connexes