如何使用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");
}
}
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");
}