2011-12-05 40 views
5

Tôi đang cố gắng đảm bảo rằng người dùng sử dụng ít nhất 6 ký tự làm mật khẩu trong chương trình của tôi.WinForms: Cách kiểm tra số ký tự tối thiểu trong hộp văn bản trong C#?

Tôi biết cách đặt kích thước tối đa bằng cách sử dụng MaxLength, nhưng cách tôi thực hiện việc này cho độ dài tối thiểu?

+2

Bạn nói cửa sổ hình thức, aspx, html, WPF, Silverlight? –

+0

@Terry Donaghe: WinForms. Tôi đã thay đổi thẻ của mình. – HelpNeeder

Trả lời

1

Mặc dù competent_tech cung cấp cho bạn cách tiếp cận đề nghị của tôi, một giải pháp nguyên thủy sẽ được như sau:

Thả một nhãn vào mẫu của bạn và cung cấp cho nó một ErrorText.

Sử dụng đoạn mã sau cho textbox sự kiện KeyDown của bạn:

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; 
} 
+1

Tôi không chắc chắn cách bạn sử dụng. Mục đích của sự kiện KeyDown là gì? – HelpNeeder

+0

Sự kiện KeyDown được nâng lên mỗi khi bạn nhập một khóa vào hộp văn bản. Chỉ cần thả hộp văn bản mật khẩu của bạn vào biểu mẫu của bạn và nhấp đúp vào nó. Điều này sẽ tự động tạo ra một trình xử lý sự kiện KeyDown – Polity

+1

Bạn có đề cập đến không gian tên nào tôi phải thêm vào để sử dụng không? – HelpNeeder

2

Nếu bạn định có nhiều giao diện người dùng, nơi người dùng có thể nhập mật khẩu của họ (web, điện thoại di động, máy khách, vv) hoặc cung cấp dịch vụ để thực hiện tương tự (web, wcf, v.v.) lựa chọn tốt nhất của bạn là bắt loại lỗi này ở mức phổ biến nhất đối với tất cả các nền tảng này.

Chúng tôi thường thực hiện các quy tắc kinh doanh như thế này trong cơ sở dữ liệu (thông qua các thủ tục được lưu trữ) để chúng tôi có một vị trí nổi tiếng để kiểm tra và thay đổi các quy tắc này.

Nếu bạn đang sử dụng cơ sở dữ liệu không hỗ trợ quy trình được lưu trữ, bạn có thể triển khai chức năng này trong "lớp doanh nghiệp" hoặc tập hợp mã chịu trách nhiệm thực hiện logic nghiệp vụ cho ứng dụng của bạn.

1

Sử dụng phương pháp xác thực trên hộp văn bản mật khẩu của bạn để thực thi độ dài.

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

Bạn có thể đăng một ví dụ không? Tôi không chắc chắn làm thế nào để kiểm tra chiều dài của một chuỗi. – HelpNeeder

+0

+1 để lấy nét. Có thể hữu ích :) – HelpNeeder

3
if (passwordTextBox.Text.Length < 6) 
{ 
    MessageBox.Show("Passwords must be at least 6 characters long."); 
    return /*false*/; 
} 

// Do some stuff... 

return /*true*/; 
+0

Làm việc cho tôi! Cảm ơn! – HelpNeeder

+1

Ususally, tôi làm một 'string.Trim()' trên _all_ giá trị hộp văn bản, ngay cả trên mật khẩu, để đảm bảo không gian trắng sai lầm do người dùng nhập vào được bỏ qua. –

+0

Chắc chắn bạn cần phải xác thực mật khẩu vượt quá số ký tự chứa trong đó,! = Tên người dùng, v.v. Tôi chỉ đang cố gắng giúp đỡ với vấn đề về độ dài tối thiểu. – rfmodulator

Các vấn đề liên quan