Причины, по которым форматирование ячеек GridView испортило отображение datagridviewC#

Место общения программистов C#
Anonymous
Причины, по которым форматирование ячеек GridView испортило отображение datagridview

Сообщение Anonymous »

Я просмотрел этот пост:

Как изменить цвет фона строки из моего представления данных, если столбец 1 содержит строку с надписью «Прервано»?

на реализовать изменения, которые я хочу. Но происходит обработка, которая портит мое отображение datagridview. Для записи в моем DataGridView более 350 строк, 18 из которых видны одновременно.
Я сохраняю цвет, который хочу, чтобы строка была в DataGridViewCell, colindex 25.
Вот мой код:

Код: Выделить всё

private void ReasonsGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if(e.ColumnIndex == 25 && e.Value != null)
{
var style = ReasonsGridView.Rows[e.RowIndex].DefaultCellStyle.BackColor = (Color)e.Value;
}
}
И это то, что отображается после некоторой прокрутки в виде сетки.
Изображение

И вот это с RowPostPaint (пожалуйста, предложите альтернативы тому, как я это делаю). Но это приводит к тому же поведению.

Код: Выделить всё

private void ReasonsGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
DataGridView dataGridView = sender as DataGridView;
DataGridViewRow row = dataGridView.Rows[e.RowIndex];
DataGridViewCell cell = row.Cells["BackColor"];

if (!row.IsNewRow)
{
row.DefaultCellStyle.BackColor = (Color)cell.Value;
}

}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/791 ... ew-display

Вернуться в «C#»