.net 创建带有启用/禁用按钮的登录表单

rm5edbpk  于 2022-11-26  发布在  .NET
关注(0)|答案(3)|浏览(123)

我学会了如何有一个文本框,当值为空时,按钮被禁用,当我在文本框中输入值时,按钮被启用。
现在我想有一个登录表单,其中包含一个文本框(用于用户名)和另一个文本框(用于密码),所以在这里我学习了如何编写代码。但是我应该如何编写代码,以便当条件(两个文本框都为空)时,按钮被禁用,而当条件为(两个文本框都有值)时,按钮被启用。

bzzcjhmw

bzzcjhmw1#

试试这个:

private void txtUserName_TextChanged(object sender, EventArgs e)
    {
        CheckFields();
    }

    private void txtPassword_TextChanged(object sender, EventArgs e)
    {
        CheckFields();
    }

    private void CheckFields()
    {
        btnLogin.Enabled = txtPassword.Text.Length == 0 || txtUserName.Text.Length == 0 ? false : true;
    }

我假设您的username文本框命名为txtUserName,您的password文本框命名为txtPassword。同样,login按钮命名为btnLogin。我建议在窗体第一次加载时将btnLogin启用属性设置为false。您可以在窗体的Load事件中设置该属性:

private void Form1_Load(object sender, EventArgs e)
    {
        btnLogin.Enabled = false;
    }
whhtz7ly

whhtz7ly2#

我认为如果你在客户端实现这个逻辑会更好(javascript),没有必要一次又一次地去服务器修改每一个文本。
你应该在用户名和密码文本框上添加onclick函数,并实现逻辑来检查是否两者都有值,然后启用按钮,否则禁用它。

vqlkdk9b

vqlkdk9b3#

您应该为这两个方块加入TextChanged事件,并让它像这样:

private void CheckTextboxes(object sender, EventArgs e)
    {
        if (string.IsNullOrWhiteSpace(txtUsername.Text) || string.IsNullOrWhiteSpace(txtPassword.Text)) 
        {
            button.Enabled = false;
            return;
        }
        button.Enabled = true;
    }

private void txtUsername_TextChanged(object sender, EventArgs e)
    {
        CheckTextboxes();
    }

private void txtPassword_TextChanged(object sender, EventArgs e)
    {
        CheckTextboxes();
    }

这样可以确保,如果用户以任意顺序在文本框中输入值,则只有在两个文本框中都写入了实际文本时,按钮才会启用。

相关问题