C# 我可以使用循环启用多个按钮吗?

C# 我可以使用循环启用多个按钮吗?,c#,winforms,C#,Winforms,我正在做一个刽子手游戏,当用户单击开始/重新启动时,我必须启用所有这些按钮。无论如何,我是否可以通过循环这个来删除这个冗余代码 它是一个W F a创建按钮列表/数组/集合,并在for循环中执行。foreach(此.Controls.OfType()中的变量b) btnA.Enabled = true; btnB.Enabled = true; btnC.Enabled = true; btnD.Enabled = true;

我正在做一个刽子手游戏,当用户单击开始/重新启动时,我必须启用所有这些按钮。无论如何,我是否可以通过循环这个来删除这个冗余代码


它是一个W F a

创建按钮列表/数组/集合,并在for循环中执行。

foreach(此.Controls.OfType()中的变量b)
        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;
{ b、 启用=真; }
添加一些LINQ。添加where子句以排除您不希望锁定的按钮。

执行类似操作

foreach(var b in this.Controls.OfType<Button>())
{ 
   b.Enabled = true;
}

带有类型检查的简单循环;)

foreach(此.Controls.OfType()中的按钮btn)
{
//反转当前状态。
btn.Enabled=!btn.Enabled;
}

就这些;)

您不需要指定,但是如果这是针对web应用程序的我建议使用javascript/html来实现。例如,如果您在应用程序中使用jQuery,下面的代码应该可以做到这一点:

foreach(Button btn in this.Controls.OfType<Button>())
{
    // Invert the current state.
    btn.Enabled = !btn.Enabled;
}

这将避免不必要的回发到服务器,似乎比您在代码隐藏中实现的任何解决方案都要简单。

只需启用它们,然后在使用它们时在OnClick中禁用它们。这是一个web应用程序吗?您应该指定这是一个Winforms、WPF、Windows8 XAML、WebForms等等。。。使用标签的项目对于每种技术,答案是不同的。
WFA
可能意味着WinForms应用程序或WebForms应用程序。。。它是哪一个?或者更好,创建一个模型对象列表,为每个模型对象创建一个按钮,绑定到模型对象,然后更改模型对象的状态。如果他真的需要保持“向后”,他可以检查表单/窗口的子项,并启用所有类型为button的子项,其名称为“btn”+字母。他说他必须启用多个按钮,而不是容器的所有按钮。这可以一个容器而不是整个表单来完成。同样的想法为白名单按钮提供了更多的信息,但它看起来与命名约定相当有序。我没有否决投票,但可能是因为有人已经发布了一个几乎与此完全相同的答案。我正在写我的答案,当我提交答案时,出现了3个其他答案:cYeah,总是发生在我身上。这些人很快,停止洪水,否则我们会再次被淹没xD
foreach(Button btn in this.Controls.OfType<Button>())
{
    // Invert the current state.
    btn.Enabled = !btn.Enabled;
}
$("button").prop("disabled",true);