C # Winforms DatagridView - установка другого цвета кнопки для другой строки - PullRequest
2 голосов
/ 06 февраля 2012

РЕДАКТИРОВАТЬ: пытается выполнить следующий код в Winforms.

Я извлекаю данные из xml, и они отображаются в таблице данных с использованием созданного мной пользовательского класса. Я связал каждый столбец с DataPropertyName

Я хочу показать текстовые поля просмотра данных, кнопку-столбец, флажок в сетке данных, как показано на следующем рисунке.

enter image description here

Я использую следующее событие, чтобы изменить цвет кнопки, которую я добавил. Для конкретного элемента предположим, что я связываю dt с одной строкой сетки, затем

if(dt.val=="true")
          {
// change the color of that button
          }

Я использую следующий код.

 private void Grid_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
DataGridViewColumn dt = Grid.Columns[9]; // 9 is column no

            foreach (DataGridViewRow r in Grid.Rows)
            { 
                if (newList[r.Index].val.ToString() == "true") //some condition
                {
                    r.DefaultCellStyle = red; // this turns compete row red

                   // add something here to make button red of this row 
                }
             else 
                {
                    r.DefaultCellStyle = green;
                   // add something here to make button red of this row 

                }


            }
}
  1. Я не могу изменить цвет кнопки определенной ячейки.
  2. Как добавить флажки в последнюю строку, так как я уже добавил DataGridViewCheckboxColumn, но по умолчанию в сетке не отображается ни один столбец.

1 Ответ

2 голосов
/ 06 февраля 2012

Вы бы изменили цвет фона определенной ячейки, как это:

r.Cells(9).Style.BackColor = Drawing.Color.Red
...