À l'aide d'un DataGridView C #, comment puis-je:
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 dans un contrôle DataGridView, définissez la propriété DefaultCellStyle.BackColor
sur une couleur de votre choix pour la ligne qui vous intéresse. Activez 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 le DefaultCellStyle.BackColor
de 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);
string[] names = new string[] { "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 'une' ligne par certains DataGridView.Rows [n] .IsSelected = true;
Utiliser comme
gridLibrary.Rows[i].DefaultCellStyle.BackColor = Color.Yellow
pour définir la couleur, vous devrez réinitialiser les couleurs après le tri de la grille .
Ensuite, utilisez la minuterie pour changer la couleur de surbrillance après un délai.
gridLibrary.Rows[i].DefaultCellStyle.BackColor = Color.white
Vous pouvez utiliser la propriété GridView
AutoFormat
.