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