如何使用c解决我的代码中显示的messagebox

本文关键字:显示 messagebox 代码 我的 何使用 解决 | 更新日期: 2023-09-27 18:24:15

我的代码在这里,当(textBox1.Text != usernames[i] && textBox2.Text != passwords[i])时,messagebox在我的应用程序中多次显示。你有解决问题的办法吗;

    private void button1_Click(object sender, EventArgs e)
    {
        XmlDocument xd = new XmlDocument();
        xd.Load(@"D:'myfile'login.xml");
        foreach (XmlNode item in xd.SelectNodes("mylogin/login"))
        {
            user += (item.SelectSingleNode("user").InnerText) + ",";
        }
        user = user.TrimEnd(',');
        usernames = user.Split(',');
        //==============
        foreach (XmlNode item in xd.SelectNodes("mylogin/login"))
        {
            pass += (item.SelectSingleNode("pass").InnerText) + ",";
        }
        pass = pass.TrimEnd(',');
        passwords = pass.Split(',');
        //============
        if (textBox1.Text != "" || textBox2.Text != "")
        {
            for (int i = 0; i < passwords.Length; i++)
            {
                if (textBox1.Text == usernames[i] && textBox2.Text == passwords[i])
                {
                    this.Hide();
                    new Form2().Show();
                }
                else
                {
                   MessageBox.Show("wrong");
                }
            }
        }
        else
        {
            MessageBox.Show("please fill user & password");
        }
    }

如何使用c解决我的代码中显示的messagebox

messagebox显示多个波浪号,因为您在循环中为每个用户名显示它。

你可能需要:

if (textBox1.Text == usernames[i])
            {
                if(textBox2.Text == passwords[i]) 
                {
                   this.Hide();
                   new Form2().Show();
                }                
                else
                {
                    MessageBox.Show("wrong");
                }
            }

我认为您只需要在迭代器中添加break;

我使用bool变量来总结for循环的结果。如果循环检查变量在退出时为true,那么我将显示消息框。希望它能帮助你。

   bool check = false;
   foreach (XmlNode item in xd.SelectNodes("mylogin/login"))
    {
        user += (item.SelectSingleNode("user").InnerText) + ",";
    }
    user = user.TrimEnd(',');
    usernames = user.Split(',');
    //==============
    foreach (XmlNode item in xd.SelectNodes("mylogin/login"))
    {
        pass += (item.SelectSingleNode("pass").InnerText) + ",";
    }
    pass = pass.TrimEnd(',');
    passwords = pass.Split(',');
    //============
    if (textBox1.Text != "" || textBox2.Text != "")
    {
        for (int i = 0; i < passwords.Length; i++)
        {
            if (textBox1.Text == usernames[i] && textBox2.Text == passwords[i])
            {
                this.Hide();
                new Form2().Show();
            }
            else
            {
               check = true;
            }
        }
        if(check)
        {
          MessageBox.Show("Wrong");
        }
    }
    else
    {
        MessageBox.Show("please fill user & password");
    }
}

我想你想要这个

if (textBox1.Text != "" || textBox2.Text != "")
        {
            bool flag=false;
            for (int i = 0; i < passwords.Length; i++)
            {
                if (textBox1.Text == usernames[i] && textBox2.Text == passwords[i])
                {

                    flag=true;
                }
              }
               if(flag==true)
                {
                  flag=false;
                  this.Hide();
                    new Form2().Show();                      
                }
            else
             {
                 MessageBox.Show("wrong");
            }
        }
        else
        {
            MessageBox.Show("please fill user & password");
        }