Цвет шрифта строки в DataGrid

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

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

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


person ridermansb    schedule 29.03.2011    source источник


Ответы (1)


Вы можете просто добавить обработчик событий в 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);
        }
person Robert Gowland    schedule 29.03.2011
comment
Я не понимаю. Я создам класс, унаследую его от DataGridViewCell и переопределю Paint .. но что дальше? - person ridermansb; 29.03.2011
comment
Помните, что я разрабатываю в среде Compact Framework (Windows Mobile) - person ridermansb; 29.03.2011
comment
Возможно, вам просто нужно добавить обработчик событий, но если вы хотите наследовать, вы наследуете ячейку, которая раскрашивает так, как вы хотите, вы наследуете столбец, который использует вашу ячейку, и вы используете этот столбец в представлении сетки. Возможно, перебор с изменением цвета шрифта, но мы занимались и другими вещами. Я не уверен, доступно ли что-либо из этого для Windows Mobile. - person Robert Gowland; 29.03.2011