我学会了如何有一个文本框,当值为空时,按钮被禁用,当我在文本框中输入值时,按钮被启用。现在我想有一个登录表单,其中包含一个文本框(用于用户名)和另一个文本框(用于密码),所以在这里我学习了如何编写代码。但是我应该如何编写代码,以便当条件(两个文本框都为空)时,按钮被禁用,而当条件为(两个文本框都有值)时,按钮被启用。
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事件中设置该属性:
username
txtUserName
password
txtPassword
login
btnLogin
false
Load
private void Form1_Load(object sender, EventArgs e) { btnLogin.Enabled = false; }
whhtz7ly2#
我认为如果你在客户端实现这个逻辑会更好(javascript),没有必要一次又一次地去服务器修改每一个文本。你应该在用户名和密码文本框上添加onclick函数,并实现逻辑来检查是否两者都有值,然后启用按钮,否则禁用它。
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(); }
这样可以确保,如果用户以任意顺序在文本框中输入值,则只有在两个文本框中都写入了实际文本时,按钮才会启用。
3条答案
按热度按时间bzzcjhmw1#
试试这个:
我假设您的
username
文本框命名为txtUserName
,您的password
文本框命名为txtPassword
。同样,login
按钮命名为btnLogin
。我建议在窗体第一次加载时将btnLogin
启用属性设置为false
。您可以在窗体的Load
事件中设置该属性:whhtz7ly2#
我认为如果你在客户端实现这个逻辑会更好(javascript),没有必要一次又一次地去服务器修改每一个文本。
你应该在用户名和密码文本框上添加onclick函数,并实现逻辑来检查是否两者都有值,然后启用按钮,否则禁用它。
vqlkdk9b3#
您应该为这两个方块加入TextChanged事件,并让它像这样:
这样可以确保,如果用户以任意顺序在文本框中输入值,则只有在两个文本框中都写入了实际文本时,按钮才会启用。