10 votes

Comment faire pour que le texte de la ligne du datagridview soit en gras lorsque je sélectionne une ligne ?

Comment faire pour que le texte de la ligne du datagridview soit en gras lorsque je sélectionne une ligne ?

24voto

Julien Poulin Points 5406

Manipuler le Formatage des cellules de l'événement DataGridView et appliquer un style gras à la police si la cellule appartient à une ligne sélectionnée :

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
  var dataGridView = sender as DataGridView;
  if (dataGridView.Rows[e.RowIndex].Selected)
  {
    e.CellStyle.Font = new Font(e.CellStyle.Font, FontStyle.Bold);
    // edit: to change the background color:
    e.CellStyle.SelectionBackColor = Color.Coral;
  }
}

1voto

Sandy Points 2475

Après avoir chargé le contenu de la grille de données, appliquez ces gestionnaires d'événements à RowEnter et RowLeave.

private void dg_RowEnter(object sender, DataGridViewCellEventArgs e)
{
    System.Windows.Forms.DataGridViewCellStyle boldStyle = new System.Windows.Forms.DataGridViewCellStyle();
    boldStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
    dg.Rows[e.RowIndex].DefaultCellStyle = boldStyle;
}

private void dg_RowLeave(object sender, DataGridViewCellEventArgs e)
{
    System.Windows.Forms.DataGridViewCellStyle norStyle = new System.Windows.Forms.DataGridViewCellStyle();
    norStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular);
    dg.Rows[e.RowIndex].DefaultCellStyle = norStyle;
}

Les codes ne sont pas testés. Mais ils devraient fonctionner correctement.

J'espère que cela vous aidera.

0voto

AVD Points 57984

Essayez de gérer SelectionChanged de dataGridView et définissez cell le style.

-1voto

Le code ci-dessous fera passer la police en style Gras pour la ligne sélectionnée. "Total" est la dernière ligne vérifiée dans mon code.

protected void gvRow_RowDataBound(object sender, GridViewRowEventArgs e)
{
 if (e.Row.RowType == DataControlRowType.DataRow)
 {
  if (e.Row.Cells[rowIndex].Text == "Total") 
  {
   e.Row.Font.Bold = true;
  }
 }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X