自定义DataGridView的TopLeftHeaderCell添加背景图时的尺寸问题
DataGridView左上角表头单元格背景图显示异常及解决
问题场景
尝试在自定义DataGridView的TopLeftHeaderCell(左上角表头单元格)中添加背景图,原图分辨率为835x835。将图片调整为单元格尺寸后,单元格却显示全黑,图片未被正确缩放。初始实现代码如下:
Private Sub dtg_CellPainting(ByVal sender As Object, ByVal e As DataGridViewCellPaintingEventArgs) Handles Me.CellPainting If e.RowIndex < 0 AndAlso e.ColumnIndex < 0 Then Dim dgvCellTopLeftHeader As DataGridViewCell = Me.TopLeftHeaderCell Dim bmpTopLeftHeaderResized As Bitmap = New Bitmap(My.Resources.Resources.expand_black, New Size(dgvCellTopLeftHeader.Size.Width, dgvCellTopLeftHeader.Size.Height)) e.Graphics.DrawImage(bmpTopLeftHeaderResized, e.CellBounds) e.Handled = True End If End Sub
最终实现代码
经帮助后,以下是实现左上角表头单元格自定义图片居中显示的最终代码:
If e.RowIndex < 0 AndAlso e.ColumnIndex < 0 Then e.Graphics.FillRectangle(Brushes.White, e.CellBounds.X + 2, e.CellBounds.Y + 1, CInt(e.CellBounds.Width * 0.85), CInt(e.CellBounds.Height * 0.85)) e.Graphics.DrawImage(Dumbow_2.My.Resources.Resources.expand_black_128, e.CellBounds.X + 10, e.CellBounds.Y + 4, CInt(e.CellBounds.Width * 0.5), CInt(e.CellBounds.Height * 0.55)) e.Handled = True End If
内容的提问来源于stack exchange,提问作者8oris
相关产品推荐
相关产品推荐

