2011-06-11 49 views
4

我想在dataGridView中顯示一些圖像。我有兩個組件,dataGridView,dataTable和一個位圖。 DataTable有兩列。在dataGridView中使用C顯示位圖

dataGridview.source = dataTable; 

現在,我想的dataGridView顯示三列,兩名來自DataTable,並將新的第三個與我的位圖。如果更容易,我可以修改dataTable和dataGridView。

可以嗎?

回答

3

有幾種方法可以解決這個問題。

DataGridView有一個圖像列類型DataGridViewImageColumn,它具有可以傳遞位圖的圖像屬性。

類似下面應該工作:

private void createGraphicsColumn(Bitmap image) 
{ 
    DataGridViewImageColumn imageColumn = new DataGridViewImageColumn(); 
    imageColumn.Image = image; 
    imageColumn.Name = "Tree"; 
    imageColumn.HeaderText = "Nice tree"; 
    dataGridView1.Columns.Insert(2, imageColumn); 
} 

如果需要,您還可以設置單個細胞的Value屬性在此列。

上面的例子加上大量的其他討論可以在MSDN找到。


另一種選擇是將圖片上傳到數據表 - 這將自動生成圖像列,但在數據表中需要新列的類型爲字節數組。

我發現下面的代碼快速谷歌這樣做:

public byte[] imageToByteArray(System.Drawing.Image imageIn) 
{ 
    MemoryStream ms = new MemoryStream(); 
    imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); 
    return ms.ToArray(); 
} 

如果你採取這種方法,我建議做一點點研究,以找到創建字節數組的最佳方法 - 我不能擔保該代碼是最好的。

+0

非常感謝幫助添加圖片到它

dtMain.Columns.Add("ImageColumn", typeof(Image)); dtMain.Rows.Add(Image.FromFile(photopath + "1.jpg")); 

下載完整的代碼,我想,現在我就可以完成這個問題。 :) – nirmus 2011-06-11 17:23:33