01/10/2018, 17:21

Lỗi khi gọi hàm Items.Clear() của Combobox trong C#

Giả sử bạn có: Một ComboBox tên “cbCompay” Một DataTable tên tblCompany chứa 2 cột: mã (ID), tên công ty (name). tblCompany có 3 dòng dữ liệu như sau: Dòng Mã Tên công ty 1 01 Góc kinh nghiệm 2 02 Microsoft 3 03 H2H Bạn viết hàm ...

Giả sử bạn có:

  • Một ComboBox tên “cbCompay”
  • Một DataTable tên tblCompany chứa 2 cột: mã (ID), tên công ty (name). tblCompany có 3 dòng dữ liệu như sau:
Dòng Tên công ty
1 01 Góc kinh nghiệm
2 02 Microsoft
3 03 H2H

Bạn viết hàm Re_LoadData() cho cbCompay như sau:

public void Re_LoadData()
{
    // Xóa các item trong cbCompay
    cbCompay. Items.Clear();
    cbCompay.DataSource = tblCompany;
}

Khi bạn gọi hàm Re-loadData() trong lúc cbCompay.Items.Count > 0 thì  hàm cbCompay. Items.Clear();  sẽ xuất hiện lỗi như bên dưới:

“Items collection cannot be modified when the DataSource property is set.”

Để giải quyết vấn đề trên, bạn thay hàm cbCompay. Items.Clear() thành cbCompay.DataSource = null

Hàm Re_LoadData() sẽ được viết lại như sau:

public void Re_LoadData()
{
    // Xóa các item trong cbCompay
    cbCompay.DataSource = null;
    cbCompay.DataSource = tblCompany;
}

Chúc các bạn may mắn! :D


0