我发现我无法将Image
属性用于PictureBox
中的List<Control>
控件。
我想做这样的事情:
List<Control> pictureboxes = new List<Control>();
private void button1_Click(object sender, EventArgs e)
{
foreach (var picturebox in pictureboxes)
{
picturebox.Image = WindowsFormsApplication1.Properties.Resources.image;
}
}
我能以某种方式这样做吗?
答案 0 :(得分:1)
将Image
控件放在PictureBox
容器中时,无法访问List<Control>
控件的Control
属性的原因是列表的基本类型({{1 }})没有Image
属性。
但该财产并没有消失。您只需将对象从Control
转换为更加派生的类PictureBox
。然后你可以调用任何方法或访问你想要的任何属性。例如:
List<Control> MyList = new List<Control>();
private void button1_Click(object sender, EventArgs e)
{
foreach (Control ctrl in MyList)
{
// Try to cast the Control object to a PictureBox
PictureBox picBox = ctrl as PictureBox;
if (picBox != null)
{
picBox.Image = WindowsFormsApplication1.Properties.Resources.image;
}
}
}