Datagridview Button Column不显示绘制VB.NET上的图像

时间:2016-03-24 13:55:01

标签: c# vb.net datagridview

我有一个带有一个按钮列的datagridview。当我使用带有图像的下列代码" unblock3.png"显示图像,但当我用另一个图像替换它时#34; check1.png"没有显示任何内容。

我尝试将check1.png调整为较小的尺寸,但仍无效。

你可以帮我弄清楚出了什么问题吗?提前谢谢

Private Sub ShiftsList_CellPainting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles ShiftsList.CellPainting
    If ShiftsList.Columns(e.ColumnIndex).Name = "ConfirmShift" AndAlso e.RowIndex >= 0 Then
        e.Paint(e.CellBounds, DataGridViewPaintParts.All)
        e.Graphics.DrawImage(My.Resources.unblock3, CInt((e.CellBounds.Width / 2) - (My.Resources.unblock3.Width / 2)) + e.CellBounds.X, CInt((e.CellBounds.Height / 2) - (My.Resources.unblock3.Height / 2)) + e.CellBounds.Y)
        e.Handled = True
    End If
End Sub

enter image description here

png

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为图像已经显示,但是人眼无法识别。

我唯一需要添加的是提供具有所需宽度和高度的绘图命令。

If FilesList.Columns(e.ColumnIndex).Name = "Unblock" AndAlso e.RowIndex >= 0 Then
        e.Paint(e.CellBounds, DataGridViewPaintParts.All)
        e.Graphics.DrawImage(My.Resources.unblock3, CInt((e.CellBounds.Width / 2) - (My.Resources.unblock3.Width / 2)) + e.CellBounds.X, CInt((e.CellBounds.Height / 2) - (My.Resources.unblock3.Height / 2)) + e.CellBounds.Y, My.Resources.unblock3.Width, My.Resources.unblock3.Height)
        e.Handled = True
    End If

我的图片很小32x32所以我提供了他们的原始尺寸。

enter image description here