Hiển thị một đối tượng lên DatagridView

Đăng bởi : 6/03/2014

thuvienwinform - Có rất nhiều trường hợp ta cần hiển thị đối tượng lên bảng để hiển thị đẹp hơn cũng như dễ dàng trong việc nhập, xử lí dữ liệu. Tương tự cách làm với LINQ thì ra chỉ cần thêm đối tượng của minh vào Data Sources rồi kéo ra dataGridview là xong (đơn giản nhất) hoặc viết mã hiển thị đối tượng đó lên bảng cũng được (nhưng công việc thiết kế như đặt tên cột, thứ tự cột, ... sẽ khó khăn hơn). Mình sẽ giới thiệu cả 2 cách

Mẫu: https://www.dropbox.com/s/9tdv0s2f5bmnxsr/thuvienwinform-HienThiDoiTuongLenDgv.rar (55KB)

Cách 1: Thêm đối tượng và Data Sources rồi kéo thả ra bảng (đơn giản nhất)
- cách này nhanh, tùy biến, thêm, xóa thuộc tính của đối tượng và thiết kế dễ  dàng (nên dùng cách này)

B1: Khai báo đối tượng:
- Đối tượng Class1 với các thuộc tính của nó

class Class1
{
    public string ThuocTinh1 { set; get; }
    public string ThuocTinh2 { set; get; }
    public string ThuocTinh3 { set; get; }
    public string ThuocTinh4 { set; get; }
    public string ThuocTinh5 { set; get; }
    public string ThuocTinh6 { set; get; }
}

B2: Thêm nó vào Data Sources 



B3: Đối tượng này ra form (phải ở chế độ thiết kế (Design))

Chọn DataGridView

Kéo ra

DataSource tự sinh

B4: thêm dữ liệu
- Chỉ cẩn thêm và data source là nó sẽ tự hiện lên bảng:

//Khai báo và truyền giá trị cho các thuộc tính của dối tượng
Class1 doiTuong = new Class1();
doiTuong.ThuocTinh1 = "1";
doiTuong.ThuocTinh2 = "2";
doiTuong.ThuocTinh3 = "3";
doiTuong.ThuocTinh4 = "4";
doiTuong.ThuocTinh5 = "5";
doiTuong.ThuocTinh6 = "6";

class1BindingSource.Add(doiTuong);//Thêm đối tượng này vào bảng

Kết quả:

- Để tùy biến giao diện ấn vào mũi tên nhỏ -> Edit Columns



Cách 2: Viết mã để hiển thị:
- Cách này khi thêm một thuộc tính cho đối tượng sẽ khó khăn trong việc sửa mã.

B1: cũng khai báo đối tượng như ở Cách 1
B2: Kéo một dataGridView ra form
B3: Viết mã nạp đối tượng lên bảng

//Dùng code
BindingSource dts = new BindingSource();//Khai báo BindingSource
dts.DataSource = typeof(Class1);// => datasource này chỉ thêm được những đối tượng Class1. Nếu không thì nó sẽ nhận typeof(đối tượng đầu tiên thêm vào)
dataGridView1.DataSource = dts;

dts.Add(doiTuong);//Thêm 1 đối tượng lên bảng (sẽ tự tạo ra 1 hàng mới). Biến doiTuong giống như ở cách 1
dts.AddNew();//Thêm 1 hàng mới (các giá trị đều rỗng)

//Đặt tên cho các cột
dataGridView1.Columns["ThuocTinh1"].HeaderText = "cột 1";
dataGridView1.Columns["ThuocTinh2"].HeaderText = "cột 2";
for (int i = 3; i <= 6; i++)
    dataGridView1.Columns["ThuocTinh" + i].HeaderText = "cột " + i;

//Sắp xếp vị trí cho cột
dataGridView1.Columns["ThuocTinh2"].DisplayIndex = 0;

Kết quả:

Lấy, sửa dữ liệu đã được thêm vào:

//Lấy dữ liệu
string dt1 = ((Class1)class1BindingSource.Current).ThuocTinh1;
string dt2 = ((Class1)class1BindingSource.Current).ThuocTinh2;

//Sửa
((Class1)class1BindingSource.Current).ThuocTinh2 = "sửa";
foreach (Class1 thuocTinh in class1BindingSource)
    thuocTinh.ThuocTinh1 = "OK";


{ 10 comments }

  1. Thêm vào data source mà không thấy đâu thì phải Debug (ấn F6) một cái mới được :D

    ReplyDelete
    Replies
    1. khi nhap thong tin vao no k hien thi len bang. du cac cot da hien thi e phai lam ntn

      Delete
    2. Anonymous8/21/2017

      Khả năng cao là thêm nhầm binding source

      Delete
    3. Anonymous3/13/2022

      Hiển Thị Một Đối Tượng Lên Datagridview >>>>> Download Now

      >>>>> Download Full

      Hiển Thị Một Đối Tượng Lên Datagridview >>>>> Download LINK

      >>>>> Download Now

      Hiển Thị Một Đối Tượng Lên Datagridview >>>>> Download Full

      >>>>> Download LINK rn

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. chỗ bước 4 phần code mình gõ ở đâu vậy

    ReplyDelete
  4. xin hỏi không thấy class để add thì làm sao nhỉ?

    ReplyDelete
  5. muốn nhập liên tục để tạo thành 1 danh sách thì làm tnao ạ, xin hướng dẫn, cách trên đây chỉ nhập đc 1 rows

    ReplyDelete
  6. cho em hỏi dữ liệu kiểu ngày tháng năm thì thêm như nào ạ

    ReplyDelete
  7. Anonymous3/13/2022

    Hiển Thị Một Đối Tượng Lên Datagridview >>>>> Download Now

    >>>>> Download Full

    Hiển Thị Một Đối Tượng Lên Datagridview >>>>> Download LINK

    >>>>> Download Now

    Hiển Thị Một Đối Tượng Lên Datagridview >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete

Nhận ngay 100$ cho VPS

Mua hàng ủng hộ page

Ủng hộ page

Nhãn

Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

- Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -