рисование DataGridView Row - PullRequest
       6

рисование DataGridView Row

1 голос
/ 04 ноября 2008

Я пытаюсь установить цвет фона строки DataGridView на красный. Я пробовал со следующей строкой:

dgvActiveCalls.Rows [1] .DefaultCellStyle.BackColor = Color.Red;

но это не работает. Затем, просто чтобы посмотреть, что не так с обновлением, я попытался нарисовать столбец вместо строки:

dgvActiveCalls.Columns [1] .DefaultCellStyle.BackColor = Color.Red;

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

Спасибо!

Ответы [ 3 ]

1 голос
/ 04 ноября 2008

Убедитесь, что стиль по умолчанию не перекрывается другим стилем. Интересная причуда DGV в 2.0: похоже, что цепочка наследования почти перевернута от того, что вы ожидаете. Если вы динамически добавляете столбцы, ваш DefaultCellStyle может быть проигнорирован и переопределен с помощью RowsDefaultCellStyle. Сортировка может также переопределить стили, которые вы установили.

Возможно, вы захотите проверить, в каком порядке вы устанавливаете эти стили, и Google для некоторых статей, касающихся наследования стилей.

P.S. Интересно, что я погуглил, чтобы найти ссылку для предоставления, и наткнулся на этот блог с почти идентичным объяснением:

http://yakkowarner.blogspot.com/2008/06/datagridview-style-inheritance.html

0 голосов
/ 18 декабря 2018

Я предлагаю вам поместить этот код в событие RowPrePaint объекта DataGridView. Например:

private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
    /*Here you put your validation in order to paint only the row that you want*/
    if (e.RowIndex == 1)
    {
         DataGridViewRow row = ((DataGridView)sender).Rows[e.RowIndex];
         row.DefaultCellStyle.BackColor = Color.Red;
    }                
}
0 голосов
/ 04 ноября 2008

Я проверил это на моей машине, и она работала нормально. Вы уверены, что эта строка не выделена? Если он выделен, вы увидите выделенный цвет, а не красный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...