我有一個DataGridView
與圖像列。在屬性中,我試圖設置圖像。我點擊圖像,選擇項目資源文件,然後選擇一個顯示的圖像。但是,該圖像仍然顯示爲DataGridView上的紅色x?任何人都知道爲什麼?Datagridview圖像列設置圖像 - C#
11
A
回答
23
例如,您有包含兩個文本列和一個圖像列的名爲'dataGridView1'的DataGridView控件。資源文件中還有名爲'image00'和'image01'的圖像。
您可以將圖片,同時添加這樣的行:
dataGridView1.Rows.Add("test", "test1", Properties.Resources.image00);
,而你的應用程序正在運行,您也可以改變形象:
dataGridView1.Rows[0].Cells[2].Value = Properties.Resources.image01;
,或者你可以做這樣的...
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");
}
}
+0
@Darren楊,你會留下評論,如果這不工作,我會提供更多的代碼.. –
1
雖然功能正常,但所提供的答案存在一個相當重要的問題。這表明加載圖像直接從Resources
:
dgv2.Rows[e.RowIndex].Cells[8].Value = Properties.Resources.OnTime;
的問題是,這在每個時間可在資源設計文件中看到新的圖像對象:
internal static System.Drawing.Bitmap bullet_orange {
get {
object obj = ResourceManager.GetObject("bullet_orange", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
如果有300個(或3000個)具有相同狀態的行,每個行都不需要自己的圖像對象,每次事件觸發時也不需要新的行。其次,以前創建的圖像不會被丟棄。
爲了避免這一切,只是資源圖像加載到陣列和使用/從那裏分配:
private Image[] StatusImgs;
...
StatusImgs = new Image[] { Resources.yes16w, Resources.no16w };
然後在CellFormatting
事件:
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];
使用相同的2個圖像對象對於所有的行。
相關問題
- 1. C#Datagridview圖像列只顯示一個圖像
- 2. 按鈕列DataGridView圖像
- 3. C#DataGridView - 透明圖像
- 4. DatagridView圖片圖像到PictureBox1在C#
- 5. 圖像視圖設置圖像資源
- 6. 填充datagridview列與圖像路徑列中的圖像
- 7. 在圖像上設置疊加圖像
- 8. 設置圖像數據爲圖像src
- 9. 設置圖像內x,y圖像
- 10. 設置PictureBox的圖像圖像加載
- 11. UIBarButtonItem的設置圖像 - 圖像拉伸
- 12. DataGridView圖像禁用
- 13. AsyncTask設置圖像視圖
- 14. 設置圖像源
- 15. 設置圖像2
- 16. 在C#2008中爲列表視圖圖像設置邊框
- 17. 在DataGridView圖像列中顯示多個圖像?可能嗎?
- 18. 設置圖像寬度的一系列圖像
- 19. c#DataGridView每行添加圖像
- 20. 與圖像C#的DataGridView不顯示
- 21. 從數據庫到DataGridView的C#圖像
- 22. 將圖像添加到C#DataGridView
- 23. 在datagridview的1列中插入圖像
- 24. Datagridview在表列中包含圖像
- 25. 在UI中設置圖像
- 26. 設置行和列爲opencv圖像
- 27. 設置panoramaItem列表背景圖像
- 28. Android設置listView列表中的圖像
- 29. 設置不同的圖像到陣列
- 30. C# - 將圖像加載到圖像列表和列表視圖
你想從資源文件加載圖像.... –