Я пытаюсь создать пользовательский DataGridViewRow, который будет действовать как разделитель (для разделения данных на группы).Я сделал это, переопределив метод PainCells в классе DataGridViewRow следующим образом:
protected override void PaintCells(Graphics graphics, Rectangle clipBounds, Rectangle rowBounds, int rowIndex, DataGridViewElementStates rowState, bool isFirstDisplayedRow, bool isLastVisibleRow, DataGridViewPaintParts paintParts)
{
graphics.FillRectangle(new SolidBrush(BackgroundColor),rowBounds);
StringFormat format = new StringFormat {Alignment = StringAlignment.Center,LineAlignment = StringAlignment.Center};
graphics.DrawString(Text, this.DataGridView.Font, new SolidBrush(ForeColor), rowBounds,format);
}
Где Text, BackgroundColor и ForeColor являются свойствами моего класса SeparatorDataGridViewRow.Строки выглядят так, как я хотел.Но это только «крышка», потому что под нарисованным прямоугольником все еще есть оригинальные ячейки данных.В частности, ячейка с кнопкой удаления формы DataGridViewButtonColumn, которую я добавил.И из-за этого, если я нажму на ячейку, где находится кнопка, моя строка-разделитель будет удалена.
Я не думаю, что это правильный способ достичь того, чего я хочу достичь, поэтому я был бы рад, если бы вы, ребята, могли либопокажи мне правильное направление или расскажи, что я могу сделать с этим решением, чтобы заблокировать возможность пользователю что-либо делать с этой строкой, независимо от того, что находится «под нарисованным прямоугольником».
У меня мало опыта в создании пользовательских элементов управленияпоэтому я не знаю, какие методы переопределить или что добавить для достижения определенных целей.Любая помощь приветствуется:)