首页 > 解决方案 > 如何使用 if 和 else 显示/隐藏标签

问题描述

我是一名学生,我正在尝试使用 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隐藏

但是如果文本是“测试”label1显示并且label2仍然显示,为什么?

标签: c#winformsif-statement

解决方案


正如 JayV 所说,您缺少大括号。仍然会显示的原因label1(如果您有文本“test”)是因为没有括号,下一个语句将(并且只会)作为Else(参见https://docs.microsoft.com/en- us/dotnet/csharp/language-reference/keywords/if-else)以及紧接下一条语句之后的任何内容都不是 if-else 的一部分,即您所写的是:

  • 如果文本textbox1是“测试”,则显示label1、隐藏label2
  • 如果文本textbox1不是“测试”,则隐藏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/visualstudio/debugger/debugger-feature-tour?view=vs-2017


推荐阅读