Comment : ajouter des info-bulles à des cellules dans un contrôle DataGridView Windows Forms
Par défaut, l’outil Astuces est utilisé pour afficher les valeurs des DataGridView cellules trop petites pour afficher leur contenu entier. Toutefois, vous pouvez remplacer ce comportement pour définir des valeurs de texte info-bulle pour des cellules individuelles. Cela est utile pour afficher aux utilisateurs des informations supplémentaires sur une cellule ou pour fournir aux utilisateurs une autre description du contenu de la cellule. Par exemple, si vous avez une ligne qui affiche des icônes d’état, vous pouvez fournir des explications de texte à l’aide de l’outil Astuces.
Vous pouvez également désactiver l’affichage de l’outil au niveau de la cellule Astuces en définissant la DataGridView.ShowCellToolTips propriété false
sur .
Pour ajouter une info-bulle à une cellule
définir la propriété DataGridViewCell.ToolTipText ;
// Sets the ToolTip text for cells in the Rating column. void dataGridView1_CellFormatting(Object^ /*sender*/, DataGridViewCellFormattingEventArgs^ e) { if ( (e->ColumnIndex == this->dataGridView1->Columns["Rating"]->Index) && e->Value != nullptr ) { DataGridViewCell^ cell = this->dataGridView1->Rows[e->RowIndex]->Cells[e->ColumnIndex]; if (e->Value->Equals("*")) { cell->ToolTipText = "very bad"; } else if (e->Value->Equals("**")) { cell->ToolTipText = "bad"; } else if (e->Value->Equals("***")) { cell->ToolTipText = "good"; } else if (e->Value->Equals("****")) { cell->ToolTipText = "very good"; } } }
// Sets the ToolTip text for cells in the Rating column. void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if ( (e.ColumnIndex == this.dataGridView1.Columns["Rating"].Index) && e.Value != null ) { DataGridViewCell cell = this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; if (e.Value.Equals("*")) { cell.ToolTipText = "very bad"; } else if (e.Value.Equals("**")) { cell.ToolTipText = "bad"; } else if (e.Value.Equals("***")) { cell.ToolTipText = "good"; } else if (e.Value.Equals("****")) { cell.ToolTipText = "very good"; } } }
' Sets the ToolTip text for cells in the Rating column. Sub dataGridView1_CellFormatting(ByVal sender As Object, _ ByVal e As DataGridViewCellFormattingEventArgs) _ Handles dataGridView1.CellFormatting If e.ColumnIndex = Me.dataGridView1.Columns("Rating").Index _ AndAlso (e.Value IsNot Nothing) Then With Me.dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex) If e.Value.Equals("*") Then .ToolTipText = "very bad" ElseIf e.Value.Equals("**") Then .ToolTipText = "bad" ElseIf e.Value.Equals("***") Then .ToolTipText = "good" ElseIf e.Value.Equals("****") Then .ToolTipText = "very good" End If End With End If End Sub
Compilation du code
Cet exemple nécessite :
Contrôle DataGridView nommé
dataGridView1
qui contient une colonne nomméeRating
pour afficher les valeurs de chaîne d’un à quatre astérisques (« * »). L’événement CellFormatting du contrôle doit être associé à la méthode du gestionnaire d’événements indiquée dans l’exemple.des références aux assemblys System et System.Windows.Forms.
Programmation fiable
Lorsque vous liez le contrôle à une source de données externe ou que vous fournissez votre propre source de données en implémentant le DataGridView mode virtuel, vous pouvez rencontrer des problèmes de performances. Pour éviter une pénalité de performances lors de l’utilisation de grandes quantités de données, gérez l’événement CellToolTipTextNeeded plutôt que de définir la ToolTipText propriété de plusieurs cellules. Lorsque vous gérez cet événement, l’obtention de la valeur d’une propriété de cellule ToolTipText déclenche l’événement et retourne la valeur de la DataGridViewCellToolTipTextNeededEventArgs.ToolTipText propriété comme spécifié dans le gestionnaire d’événements.
Voir aussi
.NET Desktop feedback