我制作了一个程序,其中包含很多控件。根据用户的选择显示和隐藏控件。这意味着控件在设计时相互重叠。现在我想在设计时更改所有控件的前景色和背景色。但我很难完成这项任务,因为所有的控制都相互重叠。所以我决定使用for循环方法来迭代表单中的控件,然后依次检查每个控件是否有控件。当控件中还有控件时,我调用相同的方法并将控件传递给它以更改子控件的属性。方法如下:
void setColor(ref Control con)
{
con.BackColor= System.Drawing.Color.Black;
con.ForeColor=System.Drawing.Color.Yellow;
if (con.Controls.Count > 0) { setColor(ref con); }
}
所以我的表单包含带有多个tabPages的tabControl。我迭代tabPages并希望将它传递给这个方法,但我变成了错误“索引器可能不会作为out或ref参数传递”
我把它传递给了setColor(ref tabControl1.Controls[i]);