有人可以帮我解决这个IF声明吗?

时间:2015-07-22 22:54:00

标签: c# if-statement

好的 - 所以,我做了一个屏幕键盘,用户打开大写锁定,盒子从黑色变为白色,然后再次点击时更改回来。

private void checkBox1_Click(object sender, EventArgs e)
{
    if (checkBox1.Checked == true)
    {
        checkBox1.BackColor = Color.White;
        checkBox1.ForeColor = Color.Black;
        checkBox1.Checked = false;
    }
    else
    {
        checkBox1.Checked = true;
        checkBox1.BackColor = Color.Black;
        checkBox1.ForeColor = Color.White;
        }
    }

这就是我认为上述代码的工作原理:

  1. 大写锁定开始(检查=错误)
  2. 用户点击大写锁定(将检查更改为true)
  3. 代码应将框更改为白色
  4. 当用户再次点击该按钮时,该框会变回黑色(因为checked = false)
  5. 我确定我在某个地方误解了这个,但我无法指出它。

    关键在于,目前它根本没有改变颜色 - 不知怎的,我忘了添加它。

1 个答案:

答案 0 :(得分:4)

您可能希望使用CheckBox.CheckedChanged事件而不是Control.Click事件。

此时,以下内容应该有效:

import

您无需处理checkBox1.BackColor = checkBox1.Checked ? Color.White : Color.Black; checkBox1.ForeColor = checkBox1.Checked ? Color.Black : Color.White; 事件,然后手动设置Click属性。处理Checked应该为您完成。