简单的登录界面,包含用户名和密码

时间:2014-05-13 21:28:04

标签: c# winforms

我正在尝试创建一个简单的登录屏幕,其中包含2个文本框和1个按钮。当我在第一个文本框(用户名)和第二个文本框(密码)中插入的字符串与我之前定义的字符串匹配时,按钮Enabled属性应该变为True,单击时,它应该打开另一个表单,这是我到目前为止编写的代码:

public partial class LogInScreen : Form
{
    public LogInScreen()
    {
        InitializeComponent();
        string lietotajvards = "user";
        string parole = "user";
        if (textBox1.Text == lietotajvards && textBox2.Text == parole)
        {
            button1.Enabled = true;
        }
        else
        {
            button1.Enabled = true;
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form1 f1 = new Form1();
        this.Hide();
        f1.Show();
    }
}

问题是,我的代码没有按预期工作,按钮一直处于启用状态。问题出在哪里?

2 个答案:

答案 0 :(得分:2)

您的代码只会在表单初始化时执行一次,您必须在textchangedtextbox1上使用textbox2事件,之后您可以使用您编写的代码检查是否需要启用该按钮。在其他地方,你必须disable按钮。

文字更改了事件处理程序:

void textBox1_TextChanged(object sender, EventArgs e)
{
    handleLoginButton();
}

void textBox2_TextChanged(object sender, EventArgs e)
{
    handleLoginButton();
}

启用/停用按钮:

private void handleLoginButton(){
        string lietotajvards = "user";
        string parole = "user";

        if (textBox1.Text == lietotajvards && textBox2.Text == parole)
        {
            button1.Enabled = true;
        }
        else
        {
            button1.Enabled = false;
        }
}

答案 1 :(得分:1)

构造函数只对表单运行一次,您需要处理输入控件的文本更改事件,然后再次重新评估您的条件。

此外,应该不用说(尽管这里有人说),这是处理登录应用程序的一种可怕方式。