C# MessageBox出现三次后如何关闭表单?

C# MessageBox出现三次后如何关闭表单?,c#,forms,if-statement,C#,Forms,If Statement,所以我开始写这个简单的代码,它会要求一个名字,只有“adam”可以工作,其他任何东西都不能。但我希望它在三次尝试失败后关闭表单 private void button2_Click(object sender, EventArgs e) { int Counter = 0; if (textBox1.Text == "adam"){ MessageBox.Show("hello, " + textBox1.Text)

所以我开始写这个简单的代码,它会要求一个名字,只有“adam”可以工作,其他任何东西都不能。但我希望它在三次尝试失败后关闭表单

private void button2_Click(object sender, EventArgs e) {
     int Counter = 0;

     if (textBox1.Text == "adam"){
         MessageBox.Show("hello, " + textBox1.Text);
     } else if (textBox1.Text != "adam"){
         MessageBox.Show("Please write the correct name. As " + textBox1.Text + " is not correct");
         Counter++;
     } else if (Counter ==3){
         this.Close();
     }
我尝试了“else-if”语句和“if”,但似乎没有任何效果,无论是你的
if(textBox1.Text==“adam”)
还是你的
else-if(textBox1.Text!=“adam”)
都是正确的;用户在框中写入或未写入“adam”。这意味着如果输入了
则输入
,如果输入了
则输入第一个
否则

如果(Counter==3),您的代码将永远不会检查else,因为它总是会很快找到正确的东西

也许您应该断开
if(计数器
检查与其他检查的连接(删除
else
并使其成为自己的
if
):

另外,不要在
按钮2中声明
计数器
,单击
,在类中声明它:

public class YourFormNameHere: Form{

  public int Counter {get;set;} = 0;

  ...
旁注:C#的命名约定;如果在方法中声明(如您当前拥有的),则应将其称为
int counter=0
。如果它位于类的顶部且是公共的,则将其称为
counter
,如果它是私有的或受保护的,则将其称为
\u counter
。如果它是公共的,则将其作为属性(
get;set;
),不是一块地


编辑:

下面是整件事情的样子:

public class YOUR_CLASS_NAME_HERE: Form{

    public int Counter {get;set;} = 0;

    private void button2_Click(object sender, EventArgs e) {

        if (textBox1.Text == "adam")
        {
            MessageBox.Show("hello, " + textBox1.Text);
        }
        else if (textBox1.Text != "adam")
        {
            MessageBox.Show("Please write the correct name. As " + textBox1.Text + " is not correct");
            Counter++;
        }
      
        if (Counter ==3)
        {
            this.Close();
        }
    }
}

事实上,它还应该为变量使用有用的名称,如
usernameTextBox
LoginButton\u Click
-将控件放到表单上后,请务必花时间重命名控件

if(Counter==3){this.Close();}
在页面顶部应用此条件抱歉,但是无论顺序如何,if语句都会被选中,因此放在顶部不起作用我尝试了它并得到了相同的结果谢谢你,但它做了相同的事情我只是感到困惑,因为该语句看起来几乎没有被选中在框中写“paul”并单击你的登录(或其他)按钮3次。你应该在一个ow中得到3个消息框,上面写着“请写…”,然后表单关闭..除非你在其他地方将计数器重置为0..刚刚注意到(由于格式问题,它不在代码块中),你每次单击按钮时都声明
Counter=0
。它永远不会达到3.1)不要在这里声明计数器,在类的顶部声明它(就像它应该是的一样,正如您使用大写字母C命名它所暗示的那样)
public class YOUR_CLASS_NAME_HERE: Form{

    public int Counter {get;set;} = 0;

    private void button2_Click(object sender, EventArgs e) {

        if (textBox1.Text == "adam")
        {
            MessageBox.Show("hello, " + textBox1.Text);
        }
        else if (textBox1.Text != "adam")
        {
            MessageBox.Show("Please write the correct name. As " + textBox1.Text + " is not correct");
            Counter++;
        }
      
        if (Counter ==3)
        {
            this.Close();
        }
    }
}