如果在c#中使用If语句取消选中CheckBox,如何禁用按钮

时间:2015-04-20 22:09:46

标签: c# checkbox

    private void btnAddTopping_Click(object sender, EventArgs e)
    {            
        {
            if((chbGarlic.Checked)  || (chbGreenPepper.Checked) || 
                  (chbMashroom.Checked) || (chbOnion.Checked) || 
                  (chbOnion.Checked)||(chbOlives.Checked) ||
                  (chbCreamCheese.Checked) || (chbCheddar.Checked) || 
                  (chbCheddar.Checked)||(chbFettaCheese.Checked) || 
                    (chbChicken.Checked) || (chbGroundBeef.Checked) )   
                PriceForHotSubTopping = 8.99;

这是我的代码。现在我要禁用btnAddTopping,直到取消选中复选框。我现在最能做什么?

3 个答案:

答案 0 :(得分:0)

为什么不使用LINQ扩展程序来查找所有复选框,如下所示:

this.Controls.OfType<CheckBox>().Any(chb => chb.Checked);

答案 1 :(得分:0)

您可以为CheckBoxName.CheckedChanged事件创建一个事件处理程序并输入

btnAddTopping.Enabled = CheckBoxName.Checked;

答案 2 :(得分:0)

让我与您分享一个优雅的XAML解决方案,甚至不必使用代码隐藏方案:

<CheckBox x:Name="chkBox" Content="Check me" />
<Button x:Name="btnAddTopping" Content="Click me" IsEnabled="{Binding ElementName=chkBox, Path=IsChecked}" />

使用此方法,IsEnabled的{​​{1}}属性绑定到Button的{​​{1}}属性,您甚至不必应用代码逻辑。

希望我能帮助你!