我正在使用Windows窗体。我在Windows窗体上有一个按钮,如果用户单击该按钮,则会出现另一个窗口,其中包含一个文本框和一个要求您输入密码的按钮。 如果用户正确键入密码,它将打开一个名为AdminPage的新表单,但是如果用户键入了错误的密码,则会出现一个消息框,要求再次尝试。问题是,即使我键入正确的密码,我似乎无法打开AdminPage。 如果有人可以指导我的错误,那将非常感谢
private void EnterBtn_Click(object sender, EventArgs e)
{
if (PsswdTxt.Text == ("BuildStore"))
{
AdminPage m = new AdminPage();
m.Show();
this.Close();
}
else
MessageBox.Show("Please Try again");
}
}
}
答案 0 :(得分:1)
可能是您正在键入Buildstore或buildStore吗?比较区分大小写 - 如果您想匹配单词而不考虑大小写,您可以使用String.Compare,或者您可以将两个值都转换为大写/小写:
if (string.Compare(PsswdTxt.Text,"BuildStore" ,true) == 0) // true signifies to ignore case
{
AdminPage m = new AdminPage();
m.Show();
this.Visible = false;
}
...或
if (PsswdTxt.Text.ToUpper() == "BuildStore".ToUpper())
{
AdminPage m = new AdminPage();
m.Show();
this.Visible = false;
}
答案 1 :(得分:1)
我会为此创建一个“登录”表单。 这个;控制每个用户帐户的某些功能。 但是“我们”不知道你在那里编程是什么。
您可以在应用程序启动时或单击该按钮时使用登录表单。 (甚至通过许多其他方式......)
虽然你的密码总是一样的;你可以试试这个: 1)创建“登录”表单;添加2个文本框和一个按钮。 2)编码如下:
public partial class Form1 : Form
{
// Variable to create a new Form2
Form2 f2 = new Form2();
public Form1()
{
InitializeComponent();
}
// On Login Form Load...
private void Form1_Load(object sender, EventArgs e)
{
btn_Login.Enabled = false;
}
// Login Button CLick
private void btn_Login_Click(object sender, EventArgs e)
{
// replace "myUserName" with your User Name and "myPassword" with your password
if (txtb_UserName.Text == "myUserName" && txtb_Password.Text == "myPassword")
{
// Shows the protected form
f2.Show();
}
// If the Username or Password is not correct; A messageBox will be shows (or 2 if both are incorrect)
// This can be perfected. But im just showing the basic examples.
else if (txtb_UserName.Text != "myUserName")
{
// Sends an error message
MessageBox.Show("Incorrect UserName");
}
else if (txtb_Password.Text != "myPassword")
{
// Sends an error message
MessageBox.Show("Incorrect Password");
}
}
// Add this code to enable or disable the login button.
// this will happen in both textBoxes (on TextChange Event).
private void check_Text_Content()
{
if(txtb_UserName.Text != string.Empty && txtb_Password.Text != string.Empty)
{
btn_Login.Enabled = true;
}
else if (txtb_UserName.Text == string.Empty)
{
btn_Login.Enabled = false;
}
else if (txtb_Password.Text == string.Empty)
{
btn_Login.Enabled = false;
}
}
// Now as you can see both textBoxes will check if their text is empty or not.
// If it's empty; The login Buttton will be disabled. Else; will be Enabled.
private void txtb_UserName_TextChanged(object sender, EventArgs e)
{
check_Text_Content();
}
private void txtb_Password_TextChanged(object sender, EventArgs e)
{
check_Text_Content();
}
}
}
如果您想偶尔自定义密码,我会使用MS Access或SQL DataBase。 (以及定制它们的表单)。 不要试图阻止你或某事;但如果您不知道如何创建和管理SQL / MS Access数据库;我建议你搜索谷歌。 网上有很多教程。 我没有向您展示如何使用SQL或Access DB执行此操作;因为这将是一个巨大的一步一步的教程。 希望它适合你。
答案 2 :(得分:0)
试试这段代码..
private void EnterBtn_Click(object sender, EventArgs e)
{
if (string.Equals(PsswdTxt.Text,"BuildStore"))
{
AdminPage m = new AdminPage();
m.Show();
this.Visible = false;
}
else
{
MessageBox.Show("Please Try again");
}
}
答案 3 :(得分:0)
您应该尝试ShowDialog而不是Show。可能是它显示在另一种形式背后。