0

我需要实现一个复选框以在启用/禁用某些控件的两种方法之间切换。我正在使用以下代码,我也尝试过其他方式,但没有运气。

  private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {

                if (checkBox1.Checked)//this is working
                {
                    trackBar2.Enabled = false;
                    button3.PerformClick();
                    textBox8.Enabled = true;
                }

            else// this is supposed to work if checkbox is unchecked but doesn't work
            {
                trackBar2.Enabled = true;
                textBox8.Enabled = false;
            }
        }

我得到的结果总是一样的。如果我选中复选框,则满足第一个条件并且很好。如果我取消选中文本框,什么都不会发生,也不会回到第一个条件。如何检测已选中/未选中的条件?

4

2 回答 2

2

你也可以这样写:

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        trackBar2.Enabled = !checkBox1.Checked;
        textBox8.Enabled = checkBox1.Checked;
        if (checkBox1.Checked)
        {
            button3.PerformClick();
        }
    }
于 2013-05-31T15:53:42.317 回答
0

我认为你应该添加if(checkBox1.Checked == false)到 else :

 private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {

        if (checkBox1.Checked)//this is working
        {
                trackBar2.Enabled = false;
                button3.PerformClick();
                textBox8.Enabled = true;
        }
        else if(checkBox1.Checked == false)
        {
            trackBar2.Enabled = true;
            textBox8.Enabled = false;
        }
    }
于 2013-05-31T15:31:24.767 回答