У меня есть элемент управления datagridview, в котором я хочу поместить линию в 3 пикселя внизу каждой ячейки заголовка, чтобы она выглядела как
У меня естьпоместите код в CellPainting даже для сетки данных, например:
if (e.RowIndex < 0) // headers
{
Rectangle newRect = new Rectangle(e.CellBounds.X, e.CellBounds.Y - 1 + e.CellBounds.Height, e.CellBounds.Width, 2);
using (Brush gridBrush = new SolidBrush(Color.Red))
{
e.Graphics.FillRectangle(gridBrush, newRect);
}e.Handled = true;
}
Красная линия отображается правильно (я добавлю 3 пикселя позже).Однако текст заголовка теперь отсутствует.
Я предполагаю, что установка e.Handled = true;говорит не продолжать рисовать исходный текст заголовка.Если я установлю значение false, красная линия исчезнет.Для этого элемента управления нет концепции base.CellPainting (по-видимому).
Я знаю, что могу нарисовать текст самостоятельно, но тогда мне нужно беспокоиться о выравнивании, шрифте ...
есть ли теперь способ сказать системе, чтобы она выполняла как линию, так и рисовала оригинальный текст заголовка?
Я готов попробовать другие подходы, если это необходимо.