2017-06-01 2 views
0

J'ai rencontré un problème lors de la modification de la taille de toutes les PictureBox d'un projet.Modification de la hauteur de toutes les PictureBox C#

Les PictureBoxes ont été créés comme ceci:

for (int x = 0; x < 2; x++) 
       { 
         string filePath = fileEntries[i]; 
         string fileName = Path.GetFileName(filePath); 
         int index = Array.IndexOf(fileEntries, filePath); 

         PictureBox image = new PictureBox(); 
         image.Text = filePath; 
         image.Top = (int)y * 185 + 8 + 185; 
         image.Left = (int)x * 325 + 9; 
         image.Name = "picbox"; 
         image.Click += picbox_Click; 
         image.Image = Image.FromFile(filePath); 
         image.BackColor = Color.FromArgb(0, 0, 110); 
         image.Height = 181; 
         image.Width = 318; 
         image.Padding = new Padding(2); 
         image.Name = "picbox"; 
         this.Controls.Add(image); 
        } 

Ensuite, lorsque vous cliquez sur une boîte, je veux changer la hauteur, la largeur, le rembourrage et le nom de tous PictureBoxes sur le formulaire. Actuellement, j'utilise le code suivant:

picbox.BackColor = Color.FromArgb(0, 0, 110); 
picbox.Height = 177; 
picbox.Width = 314; 
picbox.Padding = new Padding(0); 
picbox.Name = "picboxnew"; 

Cela ne fonctionne pas, quelqu'un sait-il comment je peux faire ce travail?

Cordialement,

+2

En ne travaillez-vous dire qu'il ne compile pas? Donne une erreur d'exécution? Ne fait aucune différence (visible)? Autre chose? – doctorlove

Répondre

1

vous pouvez le faire en utilisant Linq:

var pictureboxes = this.Controls.OfType<PictureBox>().ToList(); 
foreach (PictureBox pb in pictureboxes) 
{ 
    pb.Height = 500; 
    pb.Name = "some_name"; 
    //etc 
} 
+0

Thankyou, cela ne fonctionne! – josap

+0

Intéressant - pourquoi ce travail, mais le code de l'OP ne fonctionne pas? – doctorlove

+0

@doctorlove Je devine parce qu'il n'y a rien de tel que 'picbox' que OP essaye de changer ... – Nino