Цвет шрифта строки в DataGrid - PullRequest
0 голосов
/ 29 марта 2011

Как изменить цвет шрифта строки в DataGrid?

Цвет зависит от условия в таблице.

Я видел эту запись здесь в стеке, но она работает только для выбранных строк, и что линия будет другого цвета, независимо от того, выбран ли он или нет.

1 Ответ

0 голосов
/ 29 марта 2011

Вы можете просто добавить обработчик событий в Paint.

представления сетки.

Если вы хотите сделать больше, чем просто цвет, мы пошли по пути наследования от DataGridViewCell и переопределения его метода Paint, наследуя от DataGridViewColumn, чтобы использовать эту ячейку, а затем использовать этот столбец в нашем сеточном представлении.

Ниже приведен переопределенный метод, но обработчик событий будет выглядеть аналогично.

protected override void Paint(Graphics graphics,
            Rectangle clipBounds, Rectangle cellBounds,
            int rowIndex, DataGridViewElementStates cellState, object value, object
            formattedValue, string errorText, DataGridViewCellStyle cellStyle,
            DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts
            paintParts)
        {
             if ((value as WhatEverType).WhatEverField == 9)
             {
                 cellStyle.ForeColor = Color.CornflowerBlue;
             }
             base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
        }
...