DataGridView ImageColumn Отображение PNG-изображения с прозрачным фоном с сохранением предыдущего рисунка в расположении рисунка Winform VB.NET

Я использую ImageColumn в datagridview для просмотра изображений PNG, сохраненных в БД. Всякий раз, когда я меняю вкладки в своей форме и возвращаюсь к вкладке с DGV, прозрачный фон PNG imgae сохраняет чертеж предыдущего элемента управления, который отображался в том же месте. Также, когда я попытался изменить изображение и сохранить новое изображение в формате PNG, DGV обновляется и отображает части предыдущего изображения в прозрачной части. Я изменил цвет фона и цвет SelectionBackground в параметрах стиля ячейки imageColumn по умолчанию на БЕЛЫЙ, но ничего не изменилось. Может ли какой-нибудь орган помочь мне решить эту проблему? Пожалуйста, смотрите фотографии для оформления...

1 ответ

Наконец-то решаем по коду!

Использовал 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, чтобы нарисовать прямоугольник, чтобы фон был заполнен цветом.

Другие вопросы по тегам