2016-12-13 2 views
0

Я использую этот код:DataGridView CellMouseMove Row BACKCOLOR изменить

private void dataGridView1_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e) 
{ 
    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Blue; 
} 

Он работает только для конкретной ячейки. Что делать, если я хочу изменить цвет всей строки?

ответ

0

Вы можете перебрать все строки и ячейки и установить BackColor для них цвет

//Loop through all of the rows 
for(int i = 0; i < dataGridView1.Rows.Count; i++) { 

    //Set a variable called row for quick access to the current row 
    var row = dataGridView1.Rows[i]; 

    //Loop through all the cells in row 
    for(int x = 0; x < row.Cells.Count; x++) { 

     //Set the cell to a variable for quick access 
     var cell = row.Cells[x]; 

     //Set the back color of the cell to your desired color 
     cell.Style.BackColor = Color.Blue; 
    } 
} 

Это будет определить количество строк, а затем цикл через них, и в каждой строке, определить количество ячеек и прокручивать их, а затем установить цвет задней части этой конкретной ячейки на нужный цвет.

0

Вы можете установить целый ряд с:

dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Blue; 

Это изменит каждый строки обратно цвет при перемещении мыши над ним, но это не изменит его обратно ... так как ваши рулоны мыши по каждому ячейка, каждая строка изменяет цвет и НЕ изменяет обратно на белый по умолчанию, когда мышь покидает ячейку. Ниже приведен код для изменения цвета на белый, когда мышь покидает ячейку. Вам нужно будет проверить другие события, например, когда пользователь вводит текст в ячейку, поскольку ячейка останется измененным цветом при перемещении мыши.

private void dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.RowIndex >= 0) 
     dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Blue; 
} 

private void dataGridView1_CellMouseLeave(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.RowIndex >= 0) 
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White; 
}