Заставить DataGridView SingleVertical CellBorderStyle расширяться до конца?
Обратите внимание, прежде чем я начну... это то, как клиент хочет, чтобы он выглядел, поэтому, если у кого-то есть какой-либо "это ужасный пользовательский интерфейс / стиль / внешний вид / и т.д.", я могу согласиться или не согласиться, но это то, что они хотят. Мнения приветствуются, но это их просьба.:)
У меня есть DataGridView, к которому я применил SingleVertical CellBorderStyle. Я пытаюсь заставить вертикальные разделительные линии столбца идти до конца элемента управления, а не заканчиваться в последней ячейке. Есть ли способ сделать это без необходимости переопределять OnPaint или что-то подобное?
1 ответ
Поскольку у вас уже есть SingleVertical CellBorderStyle, вы можете заполнить оставшееся пространство одной большой пустой последней строкой:
//calculate the space already filled by column headers and rows
int currentContentHeight = Grid.ColumnHeadersHeight;
for (int i = 0; i < Grid.Rows.Count; i++)
{
currentContentHeight += Grid.Rows[i].Height;
}
//then calculate the space remaining
int remainingHeightToEndOfControl = Grid.Height - currentContentHeight;
//then fill it with one big blank final row:
if (remainingHeightToEndOfControl > 0)
{
Grid.Rows.Add();
Grid.Rows[Grid.Rows.Count - 1].Height = remainingHeightToEndOfControl;
}
Возможно, вам придется вычесть примерно 2 балла из оставшейся высоты, чтобы учесть границы контроля.