DataGridView zmiana koloru dla niektórych zaznaczonych wierszy

0

Witam, używam DataGridView do prezentacji tabel, dla wierszy których kolumna 'stan_uzytkownika' == true zmieniany jest kolor. Gdy użytkownik zaznaczy dany wiersz, kolor zmieniany jest na standardowy dla zaznaczenia, a chciałbym aby by np. ciemny czerwony. Jakie zdarzenie ma to obsłużyć?

private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
	if (Convert.ToBoolean(this.dataGridView.Rows[e.RowIndex].Cells["stan_uzytkownika"].Value) == true)
        	e.CellStyle.BackColor = Color.Red;
}
0

A to nie odbywa się w zdarzeniu "Paint" czy jakoś tak?

0

Chyba dwie procedury są za to odpowiedziane: RowPrePaint i RowPostPaint. Czym się różnią teraz już nie pamiętam. Przykład: http://www.goldenline.pl/forum/986086/datagridview-formatowanie-warunkowe-wierszy/s/1#19120890

0

Niestety, obie metody nie rozwiązują problemu, w dalszym ciągu po zaznaczeniu kolor wiersza jest identyczny jak na innych nie wyróżnionych wierszach po zaznaczeniu...

private void dataGridView_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            if (Convert.ToBoolean(this.dataGridView.Rows[e.RowIndex].Cells["stan_uzytkownika"].Value) == true)
                this.dataGridView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
        }

private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            if (Convert.ToBoolean(this.dataGridView.Rows[e.RowIndex].Cells["stan_uzytkownika"].Value) == true)
                this.dataGridView.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
        }
0

Napisałem, metodę dla SelectionChanged, nie wiem o czy jest to optymalny sposób? Czy macie inne propozycje?

private void dataGridView_SelectionChanged(object sender, EventArgs e)
        {
            if (dataGridView.SelectedRows != null)
                for (int i = 0; i < dataGridView.SelectedRows.Count; i++)
                    if (Convert.ToBoolean(this.dataGridView.SelectedRows[i].Cells["stan_uzytkownika"].Value) == true)
                        dataGridView.SelectedRows[i].DefaultCellStyle.SelectionBackColor = Color.DarkRed;
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1