2017-06-30 3 views
-1

Dans une forme Windows, je peux ajouter des contrôles dans FlowLayoutPanel dynamiquement en faisant ceci:Ajouter des contrôles dans FlowLayoutPanel

for (int i = 0; i < 5; i++) 
{ 
    Button button = new Button(); 
    butto.Name="btn_"+i.ToSting(); 
    butto.Text=i.ToSting(); 
    this.flowlayoutpanel1.Controls.Add(button); 
} 

Il fonctionne très bien, mais quand je mets la variable « i » à 1500, il semble que le flowlayoutpanel ne peut pas afficher tous ses contrôles. Où est l'erreur, et comment puis-je résoudre? Ce que je veux faire est de créer un contrôle utilisateur qui contient un flowlayoutpanel, et quand j'ouvre un document PDF, je veux ajouter un élément qui affiche des vignettes de chaque page dans le flowlayoutpanel.

+0

êtes-vous ajouter seulement le bouton ou plus de contrôles? Une limite de contrôle WinForm; 6000. becuse form table de poignée est 64k – VolkanCetinkaya

+0

* "il semble que le flowlayoutpanel ne peut pas afficher tous ses contrôles" * - comment êtes-vous arrivé à une telle conclusion? Sont-ils pas visibles? Vous avez une capture d'écran à montrer? L'ajout de tant de contrôles a un coût, avez-vous pensé à utiliser des contrôles spécialisés pour représenter de nombreux éléments, par ex. ['ListView'] (https://stackoverflow.com/q/456063/1997232)? – Sinatr

+0

Combien de porcs de 20 livres entrent dans un poke de 100 livres? Non 1500. Définissez la propriété AutoScroll du panneau sur True pour aller de l'avant. –

Répondre

0

Vous pouvez définir flowlayoutpanel.AutoScroll = true dans le code ou par conception Property vous pouvez définir AutoScroll par défaut true.