Procedura: Aggiungere descrizioni comando alle singole celle in un controllo DataGridView di Windows Forms

Per impostazione predefinita, le descrizioni comandi vengono utilizzate 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 di testo della descrizione comando per le singole celle. Questa operazione è utile per visualizzare agli utenti informazioni aggiuntive su una cella o per fornire agli utenti una descrizione alternativa del contenuto della cella. Se, ad esempio, è presente una riga in cui sono visualizzate le icone di stato, è possibile fornire spiegazioni del testo utilizzando le descrizioni comandi.

È anche possibile disabilitare la visualizzazione delle descrizioni comando a livello di cella 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:

  • Un DataGridView controllo denominato dataGridView1 che contiene una colonna denominata Rating per la visualizzazione dei valori stringa di uno e quattro simboli asterisco ("*"). L' CellFormatting evento 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 DataGridView controllo 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 riduzione delle prestazioni quando si lavora con grandi quantità di dati, gestire l' CellToolTipTextNeeded evento anziché impostare la ToolTipText proprietà di più celle. Quando si gestisce questo evento, ottenere il valore di una proprietà della cella ToolTipText genera l'evento e restituisce il valore della DataGridViewCellToolTipTextNeededEventArgs.ToolTipText proprietà come specificato nel gestore eventi.

Vedere anche