Прорисовка границы ячейки таблицы
Работаю с WinForms. В DataGrid ячейки - DataGridViewImageCell. Вокруг каждой ячейки рисуется рамка (при Paint):
using (Brush border_brush = new SolidBrush(<COLOR>))
{
using (Pen border_pen = new Pen(border_brush, <WIDTH>))
{
var rect = <DATAGRID>.GetCellDisplayRectangle(<Y>, <Y>, true);
e.Graphics.DrawRectangle(border_pen, rect);
}
}
После прокрутки таблицы, разумеется это все слетает, т.к. прорисовка зависит от полученных координат ячейки. Единственных путем кажется изменение каждого рисунка ячейки (т.е. добавление на существующий рисунок нужной рамки). Как можно еще решить эту проблему?
Ответы (1 шт):
Автор решения: Александр Пертенава
→ Ссылка
Благодарность Alexander Petrov!
private void DGV_functions_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
using (Brush border_brush = new SolidBrush(<COLOR>))
{
using (Pen border_pen = new Pen(border_brush, <WIDTH>))
{
Rectangle rect = new Rectangle(
e.CellBounds.X,
e.CellBounds.Y,
e.CellBounds.Width,
e.CellBounds.Height
);
e.Graphics.DrawRectangle(border_pen, rect);
}
}
e.Handled = true;
}