Como: Adicionar dicas de ferramentas para células individuais em um controle DataGridView do Windows Forms

Por padrão, as dicas de ferramentas são usadas para exibir os valores de DataGridView células que são muito pequena para mostrar todo o Sumário. Você pode substituir esse comportamento, no entanto, para conjunto valores de texto de dica de ferramenta para células individuais.Isso é útil para exibir aos usuários obter informações adicionais sobre uma célula ou para fornecer aos usuários uma descrição alternativa do Sumário da célula.Por exemplo, se você tiver uma linha que exibe os ícones de status, convém fornecer explicações de texto usando as dicas de ferramentas.

Você também pode desabilitar a exibição de dicas de ferramentas de nível de célula, definindo o DataGridView.ShowCellToolTips propriedade para false.

Para adicionar uma dica de ferramenta a uma célula

  • Defina a propriedade 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";
            }
        }
    }
    

Compilando o código

  • Este exemplo requer:

  • A DataGridView controle de chamada dataGridView1 que contém uma coluna chamada RatingPara exibir os valores de seqüência de caracteres de um a quatro asterisco ("*") símbolos. The CellFormatting evento do controle deve estar associado com o método do manipulador de eventos mostrado no exemplo.

  • Referências à System e System.Windows.Forms assemblies.

Programação robusta

Quando você BIND o DataGridView o controle para uma fonte de dados externa ou fornecer sua própria fonte de dados com a implementação de modo virtual, você pode encontrar problemas de desempenho. Para evitar uma penalidade de desempenho ao trabalhar com grandes quantidades de dados, manipular o CellToolTipTextNeeded evento em vez de configuração a ToolTipText propriedade de várias células. Quando você tratar este evento, obtendo o valor de uma célula ToolTipText propriedade dispara o evento e retorna o valor da DataGridViewCellToolTipTextNeededEventArgs.ToolTipText a propriedade sistema autônomo especificado em evento manipulador.

Consulte também

Referência

DataGridView

DataGridView.ShowCellToolTips

DataGridView.CellToolTipTextNeeded

DataGridViewCell

DataGridViewCell.ToolTipText

Outros recursos

Programação com células, linhas e colunas em Windows Forms DataGridView controle