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

Я хотел бы изменить цвет определенной строки в моем представлении данных. Строка должна быть изменена на красный, если значение columncell 7 меньше значения в columncell 10. Есть предложения о том, как этого добиться?

135
задан abatishchev 10 December 2014 в 23:44
поделиться

4 ответа

Вам нужно перебрать строки в datagridview, а затем сравнить значения столбцов 7 и 10 в каждой строке.

Попробуйте следующее:

foreach (DataGridViewRow row in vendorsDataGridView.Rows) 
     if (Convert.ToInt32(row.Cells[7].Value) < Convert.ToInt32(row.Cells[10].Value)) 
     {
         row.DefaultCellStyle.BackColor = Color.Red; 
     }
183
ответ дан 23 November 2019 в 23:44
поделиться

Что-то вроде следующее ... Предполагая, что значения в клетках являются целые числа.

foreach (DataGridViewRow dgvr in myDGV.Rows)
{
  if (dgvr.Cells[7].Value < dgvr.Cells[10].Value)
  {
    dgvr.DefaultCellStyle.ForeColor = Color.Red;
  }
}

непроверенные, поэтому извиняюсь за любую ошибку.

Если вы знаете конкретный ряд, вы можете пропустить итерацию:

if (myDGV.Rows[theRowIndex].Cells[7].Value < myDGV.Rows[theRowIndex].Cells[10].Value)
{
  dgvr.DefaultCellStyle.ForeColor = Color.Red;
}
13
ответ дан 23 November 2019 в 23:44
поделиться

Указатели объектов никогда не удаляются, точка. Тот факт, что они набраны как указатели, а не просто как «объектные типы», является артефактом наследия языка C. Это в точности эквивалентно системе типов Java, где доступ к объектам всегда осуществляется через ссылки. В Java объект никогда не удаляется - на самом деле, нельзя. Вы не должны думать о них как о указателях, потому что семантически это не так. Это просто ссылки на объекты.

-121--1080963-

Я не могу поверить, что никто не упомянул:

http://www.extjs.com/

Его коммерческий js рамки, но довольно доступный, и делают собрать хороший UI ветерок. Есть гораздо более полный набор элементов, то jqueryui, и его разработан, чтобы сделать целый аппликаций. я только играл с ним немного, но я действительно люблю его до сих пор. Бесплатно для личного пользования.

Если вы действительно хотите получить представление о полном пользовательском интерфейсе, разработанном с помощью EXT, попробуйте использовать следующий url:

http://docs.sencha.com/extjs/4.2.1/extjs-build/examples/feed-viewer/feed-viewer.html

-121--77422-

Вы ищете событие CellFormatting .
Вот пример .

23
ответ дан 23 November 2019 в 23:44
поделиться

Обычно мне нравится использовать для этого событие GridView.RowDataBound Event.

protected void OrdersGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.ForeColor = System.Drawing.Color.Red;
    }
}
0
ответ дан 23 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: