Compartilhar via


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 as células que estão muito pequenas para mostrar seu conteúdo inteiro. Você pode substituir esse comportamento, no entanto, para definir valores de texto de dica de ferramenta para células individuais. Isso é útil para exibir informações adicionais sobre uma célula de usuários ou para fornecer aos usuários uma descrição alternativa do conteúdo 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 desativar a exibição de dicas de ferramentas de nível de célula, definindo a DataGridView.ShowCellToolTips propriedade para false.

Para adicionar uma dica de ferramenta para 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 chamado dataGridView1 que contém uma coluna chamada Rating para exibir os valores de seqüência de caracteres de um a quatro asterisco ("*") símbolos. O CellFormatting o evento do controle deve ser associado com o método de manipulador de eventos mostrado o exemplo.

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

Programação robusta

Quando você ligar o DataGridView de controle a uma fonte de dados externos ou fornecer sua própria fonte de dados, Implementando o 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 definição de ToolTipText propriedade de várias células. Quando você manipula esse evento, obtendo o valor de uma célula ToolTipText propriedade dispara o evento e retorna o valor da DataGridViewCellToolTipTextNeededEventArgs.ToolTipText a propriedade como especificado no manipulador de eventos.

Consulte também

Referência

DataGridView

DataGridView.ShowCellToolTips

DataGridView.CellToolTipTextNeeded

DataGridViewCell

DataGridViewCell.ToolTipText

Outros recursos

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