C# 有人能帮我做这个IF语句吗?

C# 有人能帮我做这个IF语句吗?,c#,if-statement,C#,If Statement,好的,我制作了一个屏幕键盘,用户打开大写锁定,方框从黑色变为白色,然后再次单击时又变回白色 private void checkBox1_Click(object sender, EventArgs e) { if (checkBox1.Checked == true) { checkBox1.BackColor = Color.White; checkBox1.ForeColor = Color.Black; checkBox1.

好的,我制作了一个屏幕键盘,用户打开大写锁定,方框从黑色变为白色,然后再次单击时又变回白色

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;
        }
    }
我认为上述代码就是这样工作的:

  • Caps lock启动(选中=假)
  • 用户单击caps lock(将其更改为true)
  • 代码应将框更改为白色
  • 当用户再次单击按钮时,框变回黑色(因为选中=false)
  • 我肯定我在什么地方误解了这一点,但我不能确定


    这一点是,目前它根本没有改变颜色-不知何故,我忘了添加这一点

    您可能希望使用事件而不是事件

    在这一点上,以下措施应该起作用:

    checkBox1.BackColor = checkBox1.Checked ? Color.White : Color.Black;
    checkBox1.ForeColor = checkBox1.Checked ? Color.Black : Color.White;
    

    您不需要处理
    单击
    事件,然后手动设置
    选中的
    属性。处理
    CheckChanged
    应该可以帮您完成。

    您可能希望使用事件而不是事件

    在这一点上,以下措施应该起作用:

    checkBox1.BackColor = checkBox1.Checked ? Color.White : Color.Black;
    checkBox1.ForeColor = checkBox1.Checked ? Color.Black : Color.White;
    

    您不需要处理
    单击
    事件,然后手动设置
    选中的
    属性。处理
    CheckChanged
    应该可以帮您完成。

    您是否使用了调试器(或打印)来检查是否调用了事件处理程序?只是为了将来-
    capslock
    与复选框无关
    Capslock
    是键盘上的一个键。是的,很抱歉,我以后会把问题写得更好。谢谢,您是否使用调试器(或打印)检查是否调用了事件处理程序?仅供将来使用-
    capslock
    与复选框无关
    Capslock
    是键盘上的一个键。是的,很抱歉,我以后会把问题写得更好。谢谢Robbith,在else声明中,我的另一半有一个小的修正。谢谢!虽然我从来没见过它写得像支票盒1。支票?颜色。白色:颜色。黑色;之前我要多学习!再次感谢,伙计。这是用来代替if-else的三元运算符。条件第一:第二;如果条件为true,则计算第一个表达式并将其作为结果;如果为false,则计算第二个表达式并将其作为结果。@Adam199990作为learningNew的补充,是对我使用的三元运算符(条件运算符)的引用。谢谢你们!我仍然在学习,所以总是感谢在正确的方向上帮助我。谢谢。我喜欢这个三元运算符!在else语句中,我的另一半被一个小补丁绑定,从而修复了这个问题。谢谢!虽然我从来没见过它写得像支票盒1。支票?颜色。白色:颜色。黑色;之前我要多学习!再次感谢,伙计。这是用来代替if-else的三元运算符。条件第一:第二;如果条件为true,则计算第一个表达式并将其作为结果;如果为false,则计算第二个表达式并将其作为结果。@Adam199990作为learningNew的补充,是对我使用的三元运算符(条件运算符)的引用。谢谢你们!我仍然在学习,所以总是感谢在正确的方向上帮助我。谢谢。我喜欢这个三元运算符!