Procedura: aggiungere descrizioni comandi a singole celle in un controllo DataGridView di Windows Form
Per impostazione predefinita, tool Suggerimenti vengono usati per visualizzare i valori delle DataGridView celle troppo piccole per visualizzare 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 Tool Suggerimenti.
È anche possibile disabilitare la visualizzazione dello strumento a livello di cella Suggerimenti impostando la DataGridView.ShowCellToolTips proprietà su false
.
Per aggiungere una descrizione comando a una cella
Impostare 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
L'esempio presenta i requisiti seguenti:
Controllo DataGridView denominato
dataGridView1
che contiene una colonna denominataRating
per la visualizzazione di 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 efficiente
Quando si associa il controllo a un'origine DataGridView dati esterna o si fornisce un'origine dati personalizzata implementando la modalità virtuale, potrebbero verificarsi problemi di prestazioni. Per evitare una riduzione delle prestazioni quando si usano grandi quantità di dati, gestire l'evento CellToolTipTextNeeded anziché impostare la ToolTipText proprietà di più celle. Quando si gestisce questo evento, ottenere il valore di una proprietà di cella ToolTipText genera l'evento e restituisce il valore della DataGridViewCellToolTipTextNeededEventArgs.ToolTipText proprietà come specificato nel gestore eventi.
Vedi anche
.NET Desktop feedback