Comment mettre en évidence une ligne DataGridView ou la faire briller temporairement?

À l’aide d’un DataGridView C #, comment puis-je:

  1. Surligner une rangée
  2. Faire briller temporairement une ligne (jaunir pendant quelques secondes)

Pour simuler l’utilisateur en sélectionnant une ligne, utilisez

myDataGrid.Rows[n].IsSelected = true; 

comme l’a suggéré Gabriel.

Afin de mettre temporairement en surbrillance une ligne d’un contrôle DataGridView, définissez la propriété DefaultCellStyle.BackColor sur une couleur de votre choix pour la ligne qui vous intéresse. System.Windows.Forms.Timer ensuite un contrôle System.Windows.Forms.Timer pour la période de votre choix. Lorsque l’événement Tick du minuteur est déclenché, désactivez-le et réglez la valeur DefaultCellStyle.BackColor la ligne sur sa couleur d’origine.

Le court exemple ci-dessous concerne une application WinForm ayant un DataGridView nommé GlowDataGrid, un minuteur nommé GlowTimer et un bouton nommé GlowButton. Lorsque vous cliquez sur GlowButton, la troisième ligne de DataGridView est temporairement jaune pendant deux secondes.

 private void Form1_Load(object sender, EventArgs e) { // initialize datagrid with some values GlowDataGrid.Rows.Add(5); ssortingng[] names = new ssortingng[] { "Mary","James","Michael","Linda","Susan"}; for(int i = 0; i < 5; i++) { GlowDataGrid[0, i].Value = names[i]; GlowDataGrid[1, i].Value = i; } } private void GlowButton_Click(object sender, EventArgs e) { // set third row's back color to yellow GlowDataGrid.Rows[2].DefaultCellStyle.BackColor = Color.Yellow; // set glow interval to 2000 milliseconds GlowTimer.Interval = 2000; GlowTimer.Enabled = true; } private void GlowTimer_Tick(object sender, EventArgs e) { // disable timer and set the color back to white GlowTimer.Enabled = false; GlowDataGrid.Rows[2].DefaultCellStyle.BackColor = Color.White; } 

Mon code à vous

  private void Form1_Load(object sender, EventArgs e) { Timer t = new Timer(); t.Interval = 500; t.Enabled = false; dataGridView1.CellMouseEnter += (a, b) => { if (b.RowIndex != -1) { dataGridView1.CurrentCell = dataGridView1.Rows[b.RowIndex].Cells[0]; dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Yellow; dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionForeColor = Color.Black; t.Tick += (c, d) => { dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Blue; dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionForeColor = Color.White; t.Enabled = false; }; t.Enabled = true; } }; dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridView1.Columns.Add("Col1", "Col1"); dataGridView1.Columns.Add("Col2", "Col2"); dataGridView1.Rows.Add("Row1", "Col1"); dataGridView1.Rows.Add("Row1", "Col2"); dataGridView1.Rows.Add("Row2", "Col1"); dataGridView1.Rows.Add("Row2", "Col2"); dataGridView1.Rows.Add("Row3", "Col1"); dataGridView1.Rows.Add("Row3", "Col2"); dataGridView1.Rows.Add("Row4", "Col1"); dataGridView1.Rows.Add("Row4", "Col2"); } 

Vous pouvez mettre en surbrillance ‘n’ row par someDataGridView.Rows [n] .IsSelected = true;

Vous pouvez utiliser la propriété GridView AutoFormat .

Utiliser comme

 gridLibrary.Rows[i].DefaultCellStyle.BackColor = Color.Yellow 

pour définir la couleur, vous devrez réinitialiser les couleurs une fois la grid sortingée.

Puis, utilisez la timer pour changer la couleur de surbrillance après un délai.

 gridLibrary.Rows[i].DefaultCellStyle.BackColor = Color.white