DataGridView ImageColumn显示具有透明背景的PNG图片,保持之前的绘图在图片位置Winform VB.NET

时间:2016-04-06 15:34:02

标签: c# vb.net visual-studio-2010 datagridview datagridviewimagecolumn

我在datagridview中使用ImageColumn来查看保存在DB中的PNG图片。 每当我更改表格中的标签并返回带有DGV的标签时,PNG imgae透明背景会保留在同一位置显示的上一个控件的图形。此外,当我尝试更改图像并保存新的PNG图像时,DGV会更新,并在透明部分显示上一张图片的部分内容。 我将imageColumn单元格默认样式选项中的背景颜色和SelectionBackground颜色更改为WHITE但未更改任何内容。任何人都可以帮我解决这个问题吗? 请看图片清关.. enter image description here

1 个答案:

答案 0 :(得分:0)

最后通过代码解决了!

使用 CellPaining 在单元格中绘制白色矩形。

Private Sub ItemsList_CellPainting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles ItemsList.CellPainting
        If ItemsList.Columns(e.ColumnIndex).Name = "iconCol" And e.RowIndex >= 0 Then
            e.Paint(e.CellBounds, DataGridViewPaintParts.All)
            e.Graphics.FillRectangle(Brushes.White, e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Width, e.CellBounds.Height)
        End If

不要使用DrawRectangle使用FillRecangle绘制矩形,以便背景充满颜色。