Tôi có một DataGridView
với một cột hình ảnh. Trong các thuộc tính, tôi đang cố gắng thiết lập hình ảnh. Tôi nhấp vào hình ảnh, chọn tệp tài nguyên dự án, sau đó chọn một trong các hình ảnh được hiển thị. Tuy nhiên, hình ảnh vẫn hiển thị dưới dạng x màu đỏ trên DataGridView? Ai biết tại sao?Datagridview Hình ảnh Thiết lập Hình ảnh Cột - C#
Trả lời
Ví dụ: bạn có điều khiển DataGridView có tên 'dataGridView1' với hai cột văn bản và một cột hình ảnh. Bạn cũng có một hình ảnh trong tệp tài nguyên có tên 'image00' và 'image01'.
Bạn có thể thêm hình ảnh trong khi thêm dòng như thế này:
dataGridView1.Rows.Add("test", "test1", Properties.Resources.image00);
Bạn cũng có thể thay đổi hình ảnh khi ứng dụng của bạn đang chạy:
dataGridView1.Rows[0].Cells[2].Value = Properties.Resources.image01;
hoặc bạn có thể làm như thế này ...
void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "StatusImage")
{
// Your code would go here - below is just the code I used to test
e.Value = Image.FromFile(@"C:\Pictures\TestImage.jpg");
}
}
@Darren Young bạn sẽ để lại nhận xét nếu điều này không hoạt động và tôi sẽ cung cấp thêm mã cho điều này .. –
Trong khi chức năng, có một vấn đề khá quan trọng với câu trả lời được trình bày. Nó gợi ý tải hình ảnh trực tiếp từ Resources
:
dgv2.Rows[e.RowIndex].Cells[8].Value = Properties.Resources.OnTime;
Vấn đề là rằng điều này tạo ra một đối tượng hình ảnh mới mỗi lần như có thể thấy trong file thiết kế nguồn:
internal static System.Drawing.Bitmap bullet_orange {
get {
object obj = ResourceManager.GetObject("bullet_orange", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
Nếu có 300 (hoặc 3000) hàng có cùng trạng thái đó, mỗi hàng không cần đối tượng hình ảnh riêng của nó, cũng không cần một đối tượng mới mỗi khi sự kiện xảy ra. Thứ hai, hình ảnh được tạo trước đó không được xử lý.
Để tránh tất cả điều này, chỉ cần tải hình ảnh tài nguyên vào một mảng và sử dụng/gán từ đó:
private Image[] StatusImgs;
...
StatusImgs = new Image[] { Resources.yes16w, Resources.no16w };
Sau đó, trong CellFormatting
sự kiện:
if (dgv2.Rows[e.RowIndex].IsNewRow) return;
if (e.ColumnIndex != 8) return;
if ((bool)dgv2.Rows[e.RowIndex].Cells["Active"].Value)
dgv2.Rows[e.RowIndex].Cells["Status"].Value = StatusImgs[0];
else
dgv2.Rows[e.RowIndex].Cells["Status"].Value = StatusImgs[1];
Cùng 2 đối tượng hình ảnh được sử dụng cho tất cả các hàng.
- 1. thiết lập hình ảnh url để xem hình ảnh
- 2. thiết lập hình ảnh cho UIBarButtonItem - hình ảnh kéo dài
- 3. Cách thiết lập video dưới dạng hình nền 'hình ảnh'
- 4. C# - DataGridView - Hình ảnh và văn bản trên cùng hàng
- 5. C++ tạo hình ảnh
- 6. Cột và hình ảnh CSS3
- 7. cột hình ảnh trong jqGrid?
- 8. DataGridView Combobox di động thiết lập cột
- 9. Libgdx Box2D thiết lập hình ảnh cho một cơ thể
- 10. Thiết lập một hình ảnh với một nhãn trong Qt
- 11. Nhận dạng hình ảnh trong hình ảnh trong C#
- 12. Thu nhận hình ảnh Windows - thiết lập thuộc tính thiết bị trong C#
- 13. Làm cách nào để hiển thị hình ảnh trong tiêu đề cột datagridview?
- 14. Thư viện hình ảnh C
- 15. Khoảng trắng hình ảnh C#
- 16. Android - Hình ảnh Picker, Hình ảnh sai
- 17. Thêm hình ảnh vào cột jqgrid
- 18. Lập trình (C#) chuyển đổi Excel sang hình ảnh
- 19. C# Lưu hình ảnh lớn
- 20. C# Tạo Hình ảnh Gradient
- 21. Thao tác hình ảnh C++
- 22. Android: Hình ảnh qua hình ảnh
- 23. Html Hình ảnh qua hình ảnh
- 24. Tải hình ảnh cho hình ảnh tĩnh
- 25. Thư viện hình ảnh như hình ảnh trên Google Play? (với xem hình ảnh tiếp theo)
- 26. hình ảnh Responsive vị trí trên hình ảnh
- 27. Android - làm thế nào để thiết lập hình nền hình ảnh
- 28. Android hình ảnh lập trình lát nền làm hình nền
- 29. C/C++ Hình ảnh Đang tải
- 30. Thiết bị Retina iOS không hiển thị hình ảnh @ 2X, nó hiển thị hình ảnh 1X
bạn muốn tải hình ảnh từ tệp tài nguyên .... –