Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Giải thích code Winforms C#

20:36 19-04-2023 607 lượt xem 1 bình luận 10:46 24-04-2023

Mình đang làm 1 winform c# bán đồ ăn, mình viết code vào textbox Tìm để tìm món và có tham khảo code bên dưới nhưng không hiểu. Xin giải thích rõ và kĩ cho mình với ạ.

private void tbTim_TextChanged(object sender, EventArgs e)
        {
            string rowfilter = string.Format("{0} like '{1}'", "TenMon", "*" + tbTim.Text + "*");
            (dgv_Bang.DataSource as DataTable).DefaultView.RowFilter = rowfilter;
        }

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
phucprotein đã bình luận 01:06 20-04-2023

Đoạn code trên là một sự kiện (event) được kích hoạt khi nội dung của TextBox được thay đổi. Cụ thể, khi người dùng nhập hoặc xóa bất kỳ ký tự nào từ TextBox, sự kiện `TextChanged` sẽ được gọi và hàm `tbx_Tim_TextChanged` được thực thi.

Chuỗi `rowfilter` dùng để lọc dữ liệu từ bảng hiển thị trong DataGridView `dgv_Bang`. Chuỗi này lọc dữ liệu theo cột `TenMon` của bảng, trong đó giá trị lọc là chuỗi nhập vào TextBox. Từ khoá `like` là toán tử để kiểm tra cấu trúc của hai giá trị có tương tự nhau không, dấu * là đại diện cho những ký tự bất kỳ trước đó, với 2 đấu * đặt ở đầu với cuối có thể hiểu là trong tên món chứa chuỗi tìm kiếm là thoả điều kiện.
Ví dụ, nếu người dùng nhập vào `Phở`, chuỗi filter sẽ là `TenMon like *Phở'*`
Các từ khoá có thể phù hợp với điều kiện là.

  1. Phở
  2. Phở
  3. Phở Cuốn
  4. Bánh Phở
  5. Phở Khô
  6. Phở Chay
  7. Phở Trộn
  8. Phở Xào
  9. Phở Sốt Vang
  10. Phở Nấm

Cấu trúc của chuỗi filter bạn có thể tham khảo ở đây nhé, DataColumn.Expression Property (System.Data) | Microsoft Learn. Nếu muốn tài liệu tiếng việt thì bạn chịu khó google nhé.

Câu hỏi mới nhất