VB.NET:DataGridViewImageCell - 来自Ressource的图片?

时间:2015-06-24 12:16:59

标签: vb.net datagridview

我在Windows窗体上添加了一个名为DataGridView1的datagridview。以下代码添加一行包含2列。我想在第二栏中显示一张图片。

Dim dt As New DataTable
dt.Columns.Add("TESTROW")
dt.Rows.Add("TESTCONTENT")
DataGridView1.DataSource = dt

Dim colImage As New DataGridViewImageColumn
DataGridView1.Columns.Add(colImage)

For intI As Integer = 0 To dt.Rows.Count
    Dim cellImage As New DataGridViewImageCell
    ' THE FOLLOWING LINE WORKS FINE!!!!
    cellImage.Value = Drawing.Image.FromFile("c:\foo\bar.gif")

    ' BUT WHY NOT THIS?
    ' cellImage.Value = Properties.Resources.ResourceManager.GetObject("ExistingRessource")
    ' OR THIS?
    ' cellImage.Value = CType(Properties.Resources.ResourceManager.GetObject("ExistingRessource"), Image)

    cellImage.ImageLayout = DataGridViewImageCellLayout.Zoom
    DataGridView1.Rows(intI).Cells(1) = cellImage
Next

如果我使用" fromFile"它可以正常工作使用图像的路径,第二列显示单元格内的gif图片。

不幸的是,我尝试从ressource加载图像(" GetObject")失败,单元格显示一个带有红叉的页面符号。

我在资源中获得了我需要的所有图像。

我怎样才能做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果您已将图像添加到资源,则可以使用my.resources.ResourceName访问它,其中ResourceName似乎是" ExistingRessource"在你的情况下

您当前的尝试可能会失败,因为资源实际上没有正确添加,或者您的名称拼写错误了吗?无论哪种方式,如果您使用my.resources,您都可以确定该资源已正确添加。

cellImage.Value = My.Resources.ExistingRessource