Lập trình C# - Cách sử dụng ErrorProvider để kiểm tra đầu vào nhiều control

Cách sử dụng ErrorProvider để kiểm tra đầu vào nhiều control

Trong lập trình C#, Visual studio đã cung cấp cho chúng ta công cụ Error Provider trong C#, để bắt lỗi các dữ liệu người dùng nhập vào trên từng control. Ví dụ: mình kiểm tra dữ liệu nhập vào có nhập hay chưa, có đúng với mask yêu cầu của mình hay không, nếu không mình sẽ chặn lại và không cho submit.

Cách sử dụng cơ bản mọi người có thể tham khảo nhiều bài viết khác theo links sau:

https://laptrinhvb.net/bai-viet/chuyen-de-csharp/---Csharp----Bat-loi-su-kien-control-su-dung-Error-Provider-trong-lap-trinh-csharp/cdc8396c504da4b6.html

http://code24h.com/c-bat-loi-su-kien-control-su-dung-error-provider-trong-lap-trinh-csharp-d24686.htm

Hôm nay, Basiap chỉ bổ sung thêm thủ thuật để validate được nhiều control cùng lúc mà đỡ phải làm từng cái một. Nguyên tắc đơn giản như sau:

- Collect hết TextBox control vào 1 list, chạy lặp để set error cho từng item. Dễ nhỉ he he.

 VD: Giống như hình sau, ta chỉ cần valid các textbox dưới đây khi nhấn nút Save.Basiap su dung ErrorProvider c#

Trước tiên xử lý nút Save nhé. Thêm điều kiện, nếu valid thì mới cho cập nhật dữ liệu
 
        private void btnSave_Click(object sender, EventArgs e)
        {
            //Check if valid input -> do save data
            if (InputValidate())
            {
                //Save data
            }

        }

Tiếp theo xử lý phương thức InputValidate. Nôm na như sau: lấy hết các textbox có tên như yêu cầu, duyệt hết đám textbox đó, nếu không input thì báo lỗi, ngược lại bỏ báo lỗi. Có thêm biến errorCount để xác định có lỗi hay không ->Return

        private bool InputValidate()
        {
            var boxes = this.Controls.OfType<TextBox>();
            int errorCount = 0;
            foreach (var box in boxes)
            {
                if ("txtAgencyCode,txtCarrierCode,txtCneeCode,txtTerm,txtFreightTerm".Contains(box.Name) 
                    && string.IsNullOrWhiteSpace(box.Text))
                {
                    errorProvider1.SetError(box, "Please fill the required field");
                    errorCount++;
                }
                else
                    errorProvider1.SetError(box, "");
            }
            if (errorCount == 0)
                return true;
            else
                return false;

        }

Chỉ có vậy thôi nhé, ngoài textbox các Control khác cũng có thể xử lý ngay trong InputValidate. Các bạn tự tìm hiểu thêm nhé.

Một phút quảng cáo bắt đầu....

BASIAP - CÔNG NGHỆ TỐI ƯU.

Chuyên phát triển và triển khai các hệ thống phần mềm quản lý cho doanh nghiệp vừa và nhỏ trong lĩnh vực logistics xuất nhập khẩu, kho bãi, vận tải.

Các lĩnh vực phần mềm:

- Phần mềm quản lý kho dịch vụ.

- Phần mềm quản lý dịch vụ vận tải.

- Phần mềm quản lý xuất nhập khẩu.

- Các hệ thống phần mềm quản lý chuyên biệt theo yêu cầu.

HÃY LIÊN HỆ NGAY VỚI BASIAP ĐỂ XÂY DỰNG HỆ THỐNG TỐI ƯU HIỆU QUẢ DOANH NGHIỆP CỦA BẠN.

Website: basiap.com | Hotline: 0764758686 | Email: This email address is being protected from spambots. You need JavaScript enabled to view it.