CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 224

224
Chương 6: Windows Form

Có một số cách để bạn có thể thực hiện việc xác nhận tính hợp lệ trong một ứng dụng dựa-
trên-Windows. Một cách tiếp cận là đáp ứng các sự kiện điều khiển việc xác nhận tính hợp lệ
và không cho người dùng thay đổi focus từ điều kiểm này sang điều kiểm khác nếu lỗi xảy ra.
Một cách tiếp cận khác là dựng cờ cho điều kiểm có lỗi theo một cách nào đó để người dùng
có thể nhìn thấy tất cả lỗi một lượt. Bạn có thể sử dụng cách tiếp cận này trong .NET với điều
kiểm

ErrorProvider

.

ErrorProvider

là một điều kiểm provider đặc biệt, được sử dụng để hiển thị icon lỗi kế bên

điều kiểm có lỗi. Bạn có thể hiển thị icon lỗi kế bên một điều kiểm bằng cách sử dụng phương
thức

ErrorProvider.SetError

, và chỉ định điều kiểm thích hợp và một chuỗi thông báo lỗi.

ErrorProvider

sẽ hiển thị icon lỗi một cách tự động ở bên phải điều kiểm. Khi người dùng

đưa chuột lên icon lỗi, sẽ xuất hiện thông báo chi tiết (xem hình 6.11).
Chỉ cần thêm

ErrorProvider

vào form, bạn có thể sử dụng nó để hiển thị icon lỗi kế bên một

điều kiểm bất kỳ. Để thêm

ErrorProvider

, bạn có thể kéo nó vào khay thành phần

(component tray) hoặc tạo nó bằng mã. Đoạn mã dưới đây kiểm tra nội dung của

TextBox

mỗi

khi một phím được nhấn, xác nhận tính hợp lệ của

TextBox

này bằng một biểu thức chính quy

(kiểm tra nội dung trong

TextBox

có tương ứng với một địa chỉ e-mail hợp lệ hay không). Nếu

nội dung này không hợp lệ,

ErrorProvider

được sử dụng để hiển thị thông báo lỗi. Nếu nội

dung này hợp lệ, thông báo lỗi hiện có trong

ErrorProvider

sẽ bị xóa. Cuối cùng, phương

thức thụ lý sự kiện

Click

cho nút OK sẽ duyệt qua tất cả các điều kiểm trên form và xác nhận

rằng không điều kiểm nào có lỗi trước khi cho phép ứng dụng tiếp tục.

Hình 6.11 Form được xác nhận tính hợp lệ với ErrorProvider

using System;

using System.Windows.Forms;

using System.Text.RegularExpressions;

public class ErrorProviderValidation : System.Windows.Forms.Form {

// (Bỏ qua phần mã designer.)

private void txtEmail_TextChanged(object sender,

System.EventArgs e) {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.