2012-03-20 29 views
6

Tôi đang làm việc trên một dự án WindowsForm và dưới hình thức của tôi, tôi có một DataGridView với một DataGridViewImageColumn mà phải hiển thị các tình trạng của hàng (bật/tắt) sử dụng một hình ảnh.Hiển thị hình ảnh trong một DataGridViewImageColumn ràng buộc văn bản lĩnh vực

Tôi có một DataTable mà tôi liên kết với dữ liệu của mình. Trong bảng này, có một cột là trạng thái của mỗi hàng và là trường văn bản.

Làm cách nào để liên kết cột này với DataGridViewImageColumn hiển thị hình ảnh phù hợp?

Trả lời

13

Bất cứ khi nào tôi có câu hỏi về cách thực hiện mọi thứ trong DataGridView, tôi tham khảo Câu hỏi thường gặp của Microsoft trước tiên.

http://www.windowsclient.net/Samples/Go%20To%20Market/DataGridView/DataGridView%20FAQ.doc

Điển hình là những gì tôi làm trong tình huống đó là xử lý các sự kiện CellFormatting để thiết lập hình ảnh dựa trên các giá trị trong các tế bào.

Vì vậy, tôi sẽ lưu trữ hình ảnh của tôi trong một cái gì đó giống như một danh sách hình ảnh, sau đó có mã trong CellFormatting như sau:

private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (dgv.Columns[e.ColumnIndex].Name == "status") 
    { 
     if (e.Value != null) 
     { 
      if (e.Value.ToString() == "1") 
      { 
       e.Value = imageList1.Images[1]; 
      } 
      else 
      { 
       e.Value = imageList1.Images[2]; 
      } 
     } 
    } 
} 
+0

Cảm ơn bạn đã gợi ý của bạn! – davioooh

+0

@UWSkeletor - (Tôi biết bài đăng cũ) Sẽ không thực thi mã này 2 lần? Một lần trên sự kiện định dạng ô ban đầu và sau đó khi giá trị được đặt thành hình ảnh. Vậy tại sao không làm điều đó trong sự kiện hoàn chỉnh dữ liệu? – Stix

Các vấn đề liên quan