2009-09-28 5 views
3

J'ai un TableLayoutPanel créé par programme. Cela fonctionne très bien mais je n'ai pas pu trouver quelque chose: comment puis-je faire en sorte que les colonnes de taille automatiquement quand le formulaire est redimensionné? Le panneau est défini sur Dock.Top et lorsque je redimensionne le formulaire au lieu de dimensionner chaque colonne en pourcentage, seule la dernière colonne se développe. Que puis-je faire pour cela? Voici comment j'ajoute ColumnStyle pour chaque colonne:Redimensionner automatiquement TableLayoutPanel

this.tablePanelFilter.ColumnStyles.Add(
    new ColumnStyle(SizeType.Percent,Convert.ToSingle(
    Math.Ceiling((decimal)100/(decimal)columnCount)))); 

Répondre

1

Ajouter ce code à l'événement form.Resize a résolu le problème:

this.tablePanelFilter.ColumnStyles.Clear(); 

      for (int i = 0; i < this.tablePanelFilter.ColumnCount; i++) 
      { 
       ColumnStyle c = new ColumnStyle(); 
       c.SizeType = SizeType.Percent; 
       c.Width = Convert.ToSingle(Math.Ceiling((decimal)100/(decimal)this.tablePanelFilter.ColumnCount)); 
       this.tablePanelFilter.ColumnStyles.Add(c); 
      } 
1

Voulez-vous effacer les ColumnStyles en premier? Utilisez un débogueur et/ou du code pour vérifier que vous avez autant de ColumnStyles que vous avez de colonnes.

Questions connexes