Procedura: Inserire ToolTips a singole celle in un controllo DataGridView di Windows Forms
Per impostazione predefinita, le descrizioni comandi vengono utilizzate per visualizzare i valori delle celle DataGridView troppo piccole per mostrare l'intero contenuto. È tuttavia possibile eseguire l'override di questo comportamento per impostare i valori tooltip-text per singole celle. Ciò è utile per visualizzare agli utenti informazioni aggiuntive su una cella o fornire agli utenti una descrizione alternativa del contenuto della cella. Ad esempio, se si dispone di una riga che visualizza le icone di stato, è possibile fornire spiegazioni di testo usando i suggerimenti.
È anche possibile disabilitare la visualizzazione delle descrizioni comando a livello di cella impostando la proprietà DataGridView.ShowCellToolTips su false
.
Per aggiungere un ToolTip a una cella
Imposta la proprietà 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
Compilazione del codice
Questo esempio richiede:
Controllo DataGridView denominato
dataGridView1
che contiene una colonna denominataRating
per visualizzare i valori stringa da uno a quattro simboli asterischi ("*"). L'evento CellFormatting del controllo deve essere associato al metodo del gestore eventi illustrato nell'esempio.Riferimenti agli assembly System e System.Windows.Forms.
Programmazione affidabile
Quando si associa il controllo DataGridView a un'origine dati esterna o si fornisce un'origine dati personalizzata implementando la modalità virtuale, è possibile che si verifichino problemi di prestazioni. Per evitare una perdita di prestazioni quando si usano delle grandi quantità di dati, gestire l'evento CellToolTipTextNeeded anziché impostare la proprietà ToolTipText di più celle. Quando si gestisce questo evento, ottenere il valore della proprietà della cella ToolTipText genera l'evento e restituisce il valore della proprietà DataGridViewCellToolTipTextNeededEventArgs.ToolTipText come specificato nel gestore dell'evento.
Vedere anche
.NET Desktop feedback