如何使用if和else显示/隐藏标签

时间:2019-03-07 15:42:41

标签: c# winforms if-statement

我是一名学生,正在尝试c#(我是菜鸟) 我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "test")
        {
            label1.Show();
            label2.Hide();
        }
        else
            label1.Hide();
        label2.Show();
    }

我的问题是这样的: 我有两个标签,一个按钮和一个文本框。

如果单击TextBox等于“测试”,则我想显示label1并隐藏label2

如果TextBox不包含“测试”,我想隐藏label1并显示label2

现在,当我按下没有文本“ test”的按钮时: label2显示,label1隐藏

但是如果文本为“ test”,label1仍然显示,label2仍然显示,为什么?

2 个答案:

答案 0 :(得分:3)

正如JayV所说,您缺少大括号。 label1仍会显示的原因(如果您有文本“ test”)是因为没有括号,下一条语句将(并且仅将)作为Else的一部分执行(请参阅{{ 3}}),那么紧接着的下一条语句之后的任何内容都不是if-else的一部分,即您所写的是:

  • 如果textbox1中的文本为“ test”,然后显示label1,则隐藏label2
  • 如果textbox1中的文本不是“ test”,则隐藏label1
  • 无论代码是什么文本,代码都将运行最后的label2.show

有效地写了

    if (textBox1.Text == "test")
    {
        label1.Show();
        label2.Hide();
    }
    else
    {
        label1.Hide();
    }

    label2.Show();

何时需要:

    if (textBox1.Text == "test")
    {
        label1.Show();
        label2.Hide();
    }
    else
    {
        label1.Hide();
        label2.Show();
    }

我强烈建议您看一下调试,因为逐步执行代码会很快向您显示(请参见https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/if-else

答案 1 :(得分:1)

您在else语句中忘记了括号:

private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "test")
        {
            label1.Show();
            label2.Hide();
        }
        else
        {
            label1.Hide();
            label2.Show();
        }
    }