Procedura: aggiungere descrizioni comandi a singole celle in un controllo DataGridView di Windows Form

Aggiornamento: novembre 2007

Per impostazione predefinita, per visualizzare i valori delle celle di un controllo DataGridView che sono troppo piccole per consentire la visualizzazione di tutto il contenuto, vengono utilizzate descrizioni comandi. È tuttavia possibile eseguire l'override di questo comportamento e impostare valori di testo di descrizione comandi per le singole celle. Ciò risulta utile per visualizzare ulteriori informazioni sulla cella o per fornire agli utenti una descrizione alternativa del contenuto della cella. Se ad esempio una riga visualizza icone di stato, è possibile fornire descrizioni testuali tramite la funzionalità descritta.

È inoltre possibile disattivare la visualizzazione delle descrizioni comandi a livello di cella impostando la proprietà DataGridView.ShowCellToolTips su false.

Per aggiungere una descrizione comandi a una cella

  • Impostare la proprietà DataGridViewCell.ToolTipText.

    ' 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 'dataGridView1_CellFormatting
    
    // 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.
    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";
            }
        }
    }
    

Compilazione del codice

  • L'esempio presenta i seguenti requisiti:

  • Un controllo DataGridView denominato dataGridView1 contenente una colonna denominata Rating per la visualizzazione di valori di stringa contenenti da uno a quattro simboli asterisco ("*"). The CellFormatting event of the control must be associated with the event handler method shown in the example.

  • Riferimenti agli assembly System e System.Windows.Forms.

Programmazione efficiente

Quando si associa il controllo DataGridView a un'origine dati esterna o si fornisce una propria origine dati implementando la modalità virtuale, è possibile che si verifichino problemi di prestazioni. Per evitare cali di prestazioni quando si utilizzano grandi quantità di dati, gestire l'evento CellToolTipTextNeeded anziché impostare la proprietà ToolTipText di più celle. Quando si gestisce l'evento, il recupero del valore della proprietà ToolTipText di una cella genera l'evento e restituisce il valore della proprietà DataGridViewCellToolTipTextNeededEventArgs.ToolTipText come specificato nel gestore eventi.

Vedere anche

Riferimenti

DataGridView

DataGridView.ShowCellToolTips

DataGridView.CellToolTipTextNeeded

DataGridViewCell

DataGridViewCell.ToolTipText

Altre risorse

Programmazione con celle, righe e colonne nel controllo DataGridView di Windows Form