Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 即使密码正确,也会出现“是/否”窗口_C# - Fatal编程技术网

C# 即使密码正确,也会出现“是/否”窗口

C# 即使密码正确,也会出现“是/否”窗口,c#,C#,所以,我的问题是Form2,即RecoveryPassWord问题Yes/NO,在该问题中,用户按Yes,它会提示他们输入电子邮件以发送密码,然后按NO,将其返回主屏幕。但是,问题是,只有在密码错误时才会出现“是/否”表单,而在密码正确时才会出现“是/否”表单。我该怎么修 我试着把这些线 private void button1_Click(object sender, EventArgs e) { try { var sr =

所以,我的问题是Form2,即RecoveryPassWord问题Yes/NO,在该问题中,用户按Yes,它会提示他们输入电子邮件以发送密码,然后按NO,将其返回主屏幕。但是,问题是,只有在密码错误时才会出现“是/否”表单,而在密码正确时才会出现“是/否”表单。我该怎么修

我试着把这些线

private void button1_Click(object sender, EventArgs e)
    {

        try
        {
            var sr = new System.IO.StreamReader("C:\\" + textBox1.Text + "\\login.txt");
            username = sr.ReadLine();
            password = sr.ReadLine();
            email    = sr.ReadLine();
            sr.Close();
          if  (username == textBox1.Text && password == passwordtextbox.Text)
                MessageBox.Show("You are now successfully logged in.");


           else 
          MessageBox.Show("Username or Password seems invalid, please use email to recover password/username");
          Form2 frm = new Form2();
          // if 
          frm.Show();
          //frm.Show();
          frm.mypass = password;
          frm.myid = username;  




        }
        catch(System.IO.DirectoryNotFoundException )
        {
            MessageBox.Show("Error, please correct username/pass or recover");


        }
    }

在if语句中,这不起作用,因为它向我显示了错误-无效表达式else。我不知道还有什么可以用。如果你能帮忙,请帮忙。多谢各位

如果您确定用户名和密码已正确加载,您可以尝试将“else”子句用花括号括起来,如下所示:

Form2 frm = new Form2();
          // if 
          frm.Show();
          //frm.Show();
          frm.mypass = password;
          frm.myid = username;  

如果你的if{}else{},你可能只是缺少了括号。如果不使用大括号,则只有else后面的直接行将是If/else的一部分。所以你认为Form2代码无论如何都会运行

尝试使用以下方法:

else {
    MessageBox.Show("Username or Password seems invalid, please use email to recover password/username");
// ...
}

这是正确缩进的代码:

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        var sr = new System.IO.StreamReader("C:\\" + textBox1.Text + "\\login.txt");
        username = sr.ReadLine();
        password = sr.ReadLine();
        email    = sr.ReadLine();

        sr.Close();

        if  (username == textBox1.Text && password == passwordtextbox.Text)
        {
            MessageBox.Show("You are now successfully logged in.");
        }
        else 
        {
          MessageBox.Show("Username or Password seems invalid, please use email to recover password/username");
          Form2 frm = new Form2();
          frm.Show();
          frm.mypass = password;
          frm.myid = username;  
        }
    }
    catch(System.IO.DirectoryNotFoundException)
    {
        MessageBox.Show("Error, please correct username/pass or recover");
    }
}
您需要大括号将逻辑组合在一起:

if (username == textBox1.Text && password == passwordtextbox.Text)
    MessageBox.Show("You are now successfully logged in.");
else 
    MessageBox.Show("Username or Password seems invalid, please use email to recover password/username");

Form2 frm = new Form2();
frm.Show();
frm.mypass = password;
frm.myid = username;
我还建议将
Show()
替换为
ShowDialog()
,以防止用户在第二个表单打开时与第一个表单交互,并防止您的代码继续运行并在用户输入密码和用户名之前尝试获取它们。

将“Else”括在花括号中

if(username==textBox1.Text&&password==passwordtextbox.Text) { Show(“您现在已成功登录。”); }

否则 { MessageBox.Show(“用户名或密码似乎无效,请使用电子邮件恢复密码/用户名”); Form2 frm=新Form2(); //如果 frm.Show(); //frm.Show(); frm.mypass=密码; frm.myid=用户名;

}

因此需要缩进。@user1769881-问题是,你明白为什么花括号会起作用吗P
else
{
    MessageBox.Show("Username or Password seems invalid, please use email to recover password/username");

    Form2 frm = new Form2();
    frm.Show();
    frm.mypass = password;
    frm.myid = username;
}