如何在班上访问我的表单面板

时间:2013-12-15 19:09:26

标签: c# class foreach panel

我有一个表单,在表单中我有一个名为mypanel

的面板

现在我想写一个类,在这个类中我想用它:

foreach (Control cont in mypanel.Controls)
        {
            // do sth
        }

但这是不可能的,请帮助我如何访问我班级的表格面板

我使用此代码:

foreach (Control cont in mypanel.Controls)
            {
                if (cont is PictureBox)
                {
                    string path = @"" + Application.StartupPath + "\\Image\\";
                    cont.BackgroundImage = Image.FromFile(path + Rnd.Next(7).ToString() + ".png");
                }
            }

我有这个错误:
“名称'mypanel'在当前上下文中不存在”

1 个答案:

答案 0 :(得分:0)

检查控件的类型是否为Panel并投射它。

foreach (Control cont in mypanel.Controls)
{
    if(cont is Panel)
    {
        Panel myPanel = (Panel)cont;
        MessageBox.Show(myPanel.Name);
    }
}

您需要将控件转换为PictureBox,因为并非所有控件都包含您要设置的特定属性,

PictureBox pBox = (PictureBox)cont;
pBox.BackgroundImage = Image.FromFile(path + Rnd.Next(7).ToString() + ".png");