C# 控制多个复选框数组
我有两个由16个复选框组成的数组,我希望在for语句运行时逐渐选中它们。看起来是这样的:C# 控制多个复选框数组,c#,arrays,checkbox,C#,Arrays,Checkbox,我有两个由16个复选框组成的数组,我希望在for语句运行时逐渐选中它们。看起来是这样的: public void Cycle() { if (host == false) { CheckBox[] cboxes = relayRow.CheckBoxes; } else if (host == true) { CheckBox[] cboxes =
public void Cycle()
{
if (host == false)
{
CheckBox[] cboxes = relayRow.CheckBoxes;
}
else if (host == true)
{
CheckBox[] cboxes = relayRow2.CheckBoxes;
}
for (int i = 0; i < 16; i++)
{
cboxes[i].Checked = true;
}
}
公共作废周期()
{
如果(主机==false)
{
复选框[]cboxes=重新启用复选框;
}
else if(host==true)
{
复选框[]cboxes=relayRow2.复选框;
}
对于(int i=0;i<16;i++)
{
cboxes[i]。选中=真;
}
}
我在for语句中的“cboxes”下得到一条红线,表示“当前上下文中不存在名称“cboxes”
如果我一次只使用一个,它工作得很好,所以我的数组应该不会有问题。一次工作一个,如下所示:
public void Cycle()
{
CheckBox[] cboxes = relayRow.CheckBoxes;
for (int i = 0; i < 16; i++)
{
cboxes[i].Checked = true;
}
}
公共作废周期()
{
复选框[]cboxes=重新启用复选框;
对于(int i=0;i<16;i++)
{
cboxes[i]。选中=真;
}
}
我的布尔“主机”也应该没有问题,因为我在其他地方使用过它,并且它可以按预期工作。我只是想在检查16个数组之间切换。提前感谢。您只需在
if
语句之外声明变量:
public void Cycle()
{
CheckBox[] cboxes = null;
if (host == false)
{
cboxes = relayRow.CheckBoxes;
}
else if (host == true)
{
cboxes = relayRow2.CheckBoxes;
}
for (int i = 0; i < 16; i++)
{
cboxes[i].Checked = true;
}
}
公共作废周期()
{
复选框[]cboxes=null;
如果(主机==false)
{
cboxes=重新启用复选框;
}
else if(host==true)
{
cboxes=relayRow2.复选框;
}
对于(int i=0;i<16;i++)
{
cboxes[i]。选中=真;
}
}
或者只是
public void Cycle()
{
CheckBox[] cboxes = host ? relayRow2.CheckBoxes : relayRow.CheckBoxes;
for (int i = 0; i < 16; i++)
{
cboxes[i].Checked = true;
}
}
公共作废周期()
{
复选框[]cboxes=host?relayRow 2.复选框:relayRow.复选框;
对于(int i=0;i<16;i++)
{
cboxes[i]。选中=真;
}
}
您只需在if
语句之外声明变量:
public void Cycle()
{
CheckBox[] cboxes = null;
if (host == false)
{
cboxes = relayRow.CheckBoxes;
}
else if (host == true)
{
cboxes = relayRow2.CheckBoxes;
}
for (int i = 0; i < 16; i++)
{
cboxes[i].Checked = true;
}
}
公共作废周期()
{
复选框[]cboxes=null;
如果(主机==false)
{
cboxes=重新启用复选框;
}
else if(host==true)
{
cboxes=relayRow2.复选框;
}
对于(int i=0;i<16;i++)
{
cboxes[i]。选中=真;
}
}
或者只是
public void Cycle()
{
CheckBox[] cboxes = host ? relayRow2.CheckBoxes : relayRow.CheckBoxes;
for (int i = 0; i < 16; i++)
{
cboxes[i].Checked = true;
}
}
公共作废周期()
{
复选框[]cboxes=host?relayRow 2.复选框:relayRow.复选框;
对于(int i=0;i<16;i++)
{
cboxes[i]。选中=真;
}
}
D Stanley的答案略有不同,不确定是否需要使用数组和for循环,这会迫使您硬编码复选框的数量,但这也应该起作用:
public void Cycle()
{
var cboxes = host ? relayRow2.CheckBoxes : relayRow.CheckBoxes;
cboxes = (from checkBox in cboxes.ToList()
select new CheckBox { Checked = true}).ToArray();
}
另外,我没有足够的声望点来评论,否则我只会评论你的答案D Stanley并加上标记(对不起!)与D Stanley的答案略有不同,不确定你是否需要使用数组和for循环,这会迫使你硬编码复选框的数量,但这也应该起作用:
public void Cycle()
{
var cboxes = host ? relayRow2.CheckBoxes : relayRow.CheckBoxes;
cboxes = (from checkBox in cboxes.ToList()
select new CheckBox { Checked = true}).ToArray();
}
另外,我没有足够的声誉点来评论,否则我只会评论你的答案D Stanley和upticked(对不起!)