2017-02-23 8 views
0

Я создал собственный DataGridviewColumn, унаследованный от DataGridViewColumn. Я рисую значок, основанный на том, что базовые данные являются истинными или ложными. Я не могу понять, как установить, будет ли выделена базовая строка, чтобы я мог соответствующим образом нарисовать фон ячейки. Я безуспешно пытался следующее:Пользовательский цвет фона Datagridviewcolumn при выборе

if (cellState == DataGridViewElementStates.Selected) 
       { 
        graphics.FillRectangle(new SolidBrush(cellStyle.SelectionBackColor), cellBounds); 
       } 
       else 
       { 
        graphics.FillRectangle(new SolidBrush(cellStyle.BackColor), cellBounds); 
       } 

Единственным вариантом было бы ссылаться на родительскую сетку и проверить выбранный статус, основанный на RowIndex. Есть ли лучший способ и как я могу ссылаться на родительскую сетку?

+0

есть у попробовал этот http://stackoverflow.com/questions/2189376/how-to-change-row-color-in-datagridview –

+0

я создал пользовательский столбец, и я хочу, чтобы иметь возможность покрасьте цвет фона из события рисования при рисовании ячейки. Я не хочу иметь дело с цветами строк и т. Д. Каждый раз, когда я использую настраиваемый столбец. – AlMacOwl

ответ

0

Решила мою проблему. DataGridViewCell предоставляет родительскую сетку, которая может быть проверена для выбранной строки.

if (this.DataGridView.Rows[rowIndex].Selected) 
       { 
        graphics.FillRectangle(new SolidBrush(cellStyle.SelectionBackColor), cellBounds); 
       } 
       else 
       { 
        graphics.FillRectangle(new SolidBrush(cellStyle.BackColor), cellBounds); 
       } 
Смежные вопросы