Извините, мне было немного неясно (я не был уверен, что он выровнен по нижнему краю или пристыкован снизу, или что-то еще, поэтому я пропустил эту часть).
Но, тем не менее, я понял это. Кажется, что событие CellPainting
не ограничено границами ячеек, поэтому вы можете просто переместить ограничивающий прямоугольник ячейки, например:
Rectangle^ newRect = gcnew Rectangle(
e->CellBounds.X,
DataGridView->Bounds.Bottom-e->CellBounds.Y, // this is the moving part
e->CellBounds.Width,
e->CellBounds.Height
);
Есть некоторые незначительные изменения, которые следует рассмотреть (если видна нижняя полоса прокрутки, границы DataGridView
), но код фиксирует точку.
Глядя на проблему на расстоянии, уверенность делает свое дело;)
Редактировать: Да, действительно, это подтягивает ячейки снизу вверх, НО это также делает некоторые забавные эффекты при вертикальной / горизонтальной прокрутке и изменении фокуса окна. И да, нет заголовочных ячеек. Вернуться к чертежной доске.