C# 使用面板中的控件,仅编辑picturebox控件
panel1有多个图片框和标签 我想做一个按钮,只改变picturebox控件的样式C# 使用面板中的控件,仅编辑picturebox控件,c#,controls,C#,Controls,panel1有多个图片框和标签 我想做一个按钮,只改变picturebox控件的样式 private void button8_Click(object sender, EventArgs e) { int cnt = 0; foreach (PictureBox pb in panel1.Controls) { if (pb is Pictu
private void button8_Click(object sender, EventArgs e)
{
int cnt = 0;
foreach (PictureBox pb in panel1.Controls)
{
if (pb is PictureBox)
{
cnt++;
//do stuff
excludelist1.Add(pb.Name);
//clickedPictureBox.Hide();
pb.BorderStyle = BorderStyle.FixedSingle;
pb.Tag = Color.Blue;
}
}
label1.Text = "Exclusded Count = " + cnt;
}
//上面的代码给出了“无法从面板强制转换标签”错误。
请告诉我如何修复此问题?您的面板包含多种
控件类型,而不仅仅是图片盒。按如下方式更改循环:
foreach (var pb in panel1.Controls.OfType<PictureBox>())
{
cnt++;
//do stuff
excludelist1.Add(pb.Name);
//clickedPictureBox.Hide();
pb.BorderStyle = BorderStyle.FixedSingle;
pb.Tag = Color.Blue;
}
这里是类型方法的文档链接-我发现该解决方案更优雅一些,但两种方法都有效-您的面板包含多个控件类型,而不仅仅是图片框。按如下方式更改循环:
foreach (var pb in panel1.Controls.OfType<PictureBox>())
{
cnt++;
//do stuff
excludelist1.Add(pb.Name);
//clickedPictureBox.Hide();
pb.BorderStyle = BorderStyle.FixedSingle;
pb.Tag = Color.Blue;
}
这里有一个链接,指向OfType
方法的文档-我发现这个解决方案有点优雅,但两种方法都有效-