btnA.Enabled = true;
btnB.Enabled = true;
btnC.Enabled = true;
btnD.Enabled = true;
btnE.Enabled = true;
btnF.Enabled = true;
btnG.Enabled = true;
btnH.Enabled = true;
btnI.Enabled = true;
btnJ.Enabled = true;
btnK.Enabled = true;
btnL.Enabled = true;
btnM.Enabled = true;
btnN.Enabled = true;
btnO.Enabled = true;
btnP.Enabled = true;
btnQ.Enabled = true;
btnR.Enabled = true;
btnS.Enabled = true;
btnT.Enabled = true;
btnU.Enabled = true;
btnV.Enabled = true;
btnW.Enabled = true;
btnX.Enabled = true;
btnY.Enabled = true;
btnZ.Enabled = true;
我正在做一个刽子手游戏,我必须在用户点击开始/重启时启用所有这些按钮。无论如何我可以通过循环来删除这个冗余代码吗?
是W F A
答案 0 :(得分:2)
创建一个列表/数组/按钮集合,并在for循环中执行。
答案 1 :(得分:2)
foreach(var b in this.Controls.OfType<Button>())
{
b.Enabled = true;
}
添加一些LINQ。添加where子句以排除您不想要定位的按钮。
答案 2 :(得分:0)
执行类似
的操作foreach(Control ctrl in this.Controls)
{
if(ctrl is IButtonControl)
{
ctrl.Enabled = true;
}
}
答案 3 :(得分:0)
带有类型检查的简单循环;)
foreach(Button btn in this.Controls.OfType<Button>())
{
// Invert the current state.
btn.Enabled = !btn.Enabled;
}
这就是全部;)
答案 4 :(得分:-1)
您没有指定,但如果这是针对Web应用程序我建议您使用javascript / html执行此操作。例如,如果您在应用程序中使用jQuery,则下面的代码应该执行此操作:
$("button").prop("disabled",true);
这将避免对服务器进行不必要的回发,并且看起来比您在后面的代码中能够实现的任何解决方案都简单。