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.CellToolTipTextNeeded
Outros recursos
Programação com células, linhas e colunas no controle do Windows Forms DataGridView