WinForms:如何在C#中检查文本框中的最小字符数量?

我试图确保用户在我的程序中使用至少6个字符作为密码。

我知道如何使用MaxLength设置最大尺寸,但我如何以最小长度执行此操作?

虽然competent_tech为您提供了我推荐的方法,但原始解决方案如下:

在表单上放一个标签并给它一个ErrorText。

将以下代码用于文本框KeyDown事件:

 protected override void OnLoad(object sender, EventArgs e) { base.OnLoad(sender, e); txtPassword.KeyDown += OnPasswordKeydown; } protected void OnPasswordKeydown(object sender, KeyEventArgs e) { bool isValid = txtPassword.Text.Length < 6; ErrorText.Visible = isValid; AcceptButton.Visible = isValid; } 
 if (passwordTextBox.Text.Length < 6) { MessageBox.Show("Passwords must be at least 6 characters long."); return /*false*/; } // Do some stuff... return /*true*/; 

如果您将拥有多个用户界面,用户可以输入他们的密码(网络,移动,Windows客户端等)或提供相同的服务(web,wcf等),那么我认为您最好的选择是在所有这些平台的最常见级别捕获此类错误。

我们通常在数据库中实现这样的业务规则(通过存储过程),以便我们有一个众所周知的位置来检查和更改这些规则。

如果您使用的数据库不支持存储过程,那么您可以在“业务层”或负责为您的应用程序执行业务逻辑的代码集中实现此function。

使用密码文本框中的validation方法来强制执行长度。

  if (TextBox1.Text.Length < 6) { MessageBox.Show("password too short"); TextBox1.Focus(); }