2017-06-01 48 views
0

尝试更改项目中所有PictureBox的大小时遇到​​问题。更改所有PictureBox的高度C#

的PictureBoxes已创建这样的:

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); 
        } 

然后,单击框时,我想改变窗体上的所有PictureBoxes的高度,宽度,填充和名称。目前,我正在使用以下代码:

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

这是行不通的,有人知道我该如何做这项工作?

亲切的问候,

+2

如果不工作,你的意思是它不编译?发生运行时错误?没有(可见的)区别?还有别的吗? – doctorlove

回答

1

你可以使用LINQ做到这一点:

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

Thankyou,那工作! – josap

+0

有趣的 - 为什么这个工作,但OP的代码不工作? – doctorlove

+0

@doctorlove我猜,因为没有这样的事情,因为OP正试图改变'picbox' ... – Nino