2013-06-20 4 views
-1

проблема заключается в том, что когда я изменяю цвет выделенной строки с помощью RowTemplate.DefaultCellStyle.SelectionBackColor в моем конструкторе форм, он работает, но не работает в событиях кнопок, когда пользователь нажимает кнопку для изменения выбранной сетки задний цвет! любая помощь пожалуйста!изменение цвета datagridview динамически C#

public Form1() 
{ 
    InitializeComponent(); 
    dataGridView1.RowTemplate.DefaultCellStyle.SelectionBackColor=Color.Red; //this  works fine 
} 
void button2_Click(object sender, EventArgs e) 
{ 
    dataGridView1.RowTemplate.DefaultCellStyle.SelectionBackColor=Color.Blue;//but this does not work 
} 

ответ

1

Попробуйте это ..

void dataGridView1_RowPrePaint(object sender, 
    DataGridViewRowPrePaintEventArgs e) 
{ 
    If (DatagridView1.Rows(DataGridView1.CurrentCell.RowIndex).Selected) 
    { 

    DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).DefaultCellStyle.SelectionBackColor=Color.Blue; 

    } 
} 
+0

EventArgs не имеет свойства RowIndex !!!!! –

+0

@IsaacShakiba .. Sorrrryy !! Скопируйте ошибку патча из вашего кода: P .. Его «обновлено .. снова. .. – matzone

+0

Я не хочу менять цвет выделения назад! –

0
void button2_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     row.DefaultCellStyle.SelectionBackColor = Color.Blue 
    } 
} 

Обновление:

void button2_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewColumn col in dataGridView1.Columns) 
    { 
     col.DefaultCellStyle.BackColor = Color.Blue 
    } 
} 
+0

этот код меняет цвет выделения существующих строк, когда строка добавляется в сетку, цвет выделения возвращается к цвету по умолчанию! –

+0

Я обновил свой ответ –

Смежные вопросы