[code=C#]
private void setTag(Control cons)
{
foreach (Control con in cons.Controls )
{
con.Tag = con.Width +":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;
if (con.Controls.Count > 0)
{
setTag(con);   
}
}
}code]这代码是改变窗口中控件什么属性的,Tag?
如果是,那么,我要不想改变窗口中所有picturebox的Tag我应该怎么改代码,谢谢

解决方案 »

  1.   

    private void setTag(Control cons)
    {
    foreach (Control con in cons.Controls )
    {
    con.Tag = con.Width +":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;
    if (con.Controls.Count > 0)
    {
    setTag(con);   
    }
    }
    }
      

  2.   

    在改变Tag属性之前判断下当前的Control是否为picturebox就可以了private void setTag(Control cons)
            {
                foreach (Control con in cons.Controls )
                {
                    if (con is PictureBox) continue;
                    con.Tag = con.Width +":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;
                    if (con.Controls.Count > 0)
                    {
                        setTag(con);   
                    }
                }
            }
      

  3.   

    是改变控件的Tag属性,如果不想改变PictureBox控件的属性,这样:private void setTag(Control cons) 

        foreach (Control con in cons.Controls ) 
        {
            if(con is PictureBox)
                continue;
            con.Tag = con.Width +":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size; 
            if (con.Controls.Count > 0) 
            { 
                setTag(con);    
            } 
        } 
    }
      

  4.   

    Tag属性一般用来存储一些额外的信息,如解释性的内容。
    楼主的代码种如不想改变PictureBox的Tag,可以:if(con.GetType().Name!="PictureBox")
      con.Tag = con.Width +":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;