Como Adicionar ToolTips a 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 células DataGridView que são pequenas demais para mostrar todo o conteúdo. Contudo, é possível substituir esse comportamento para definir valores de texto de dicas de ferramentas para células individuais. Isso é útil para exibir aos usuários informações adicionais sobre uma célula ou fornecer aos usuários uma descrição alternativa do conteúdo da célula. Por exemplo, se você tiver uma linha que exibe ícones de status, talvez seja recomendável fornecer explicações de texto usando dicas de ferramenta.
Você também pode desabilitar a exibição de dicas de ferramenta no nível da célula definindo a propriedade DataGridView.ShowCellToolTips como false
.
Para adicionar uma Dica de Ferramenta a uma célula
Definir a propriedade 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
Compilando o código
Este exemplo requer:
Um controle DataGridView chamado
dataGridView1
que contém uma coluna chamadaRating
para exibir valores de cadeia de caracteres de um a quatro símbolos de asterisco ("*"). O evento CellFormatting do controle deve ser associado ao método de manipulador de eventos mostrado no exemplo.Referências aos conjuntos System e System.Windows.Forms.
Programação robusta
Ao associar o controle DataGridView a uma fonte de dados externa ou fornecer sua própria fonte de dados implementando o modo virtual, você poderá encontrar problemas de desempenho. Para evitar uma penalidade de desempenho ao trabalhar com grandes quantidades de dados, manipule o evento CellToolTipTextNeeded em vez de definir a propriedade ToolTipText de várias células. Quando você manipula esse evento, acessar o valor da propriedade de uma célula ToolTipText aciona o evento e retorna o valor da propriedade DataGridViewCellToolTipTextNeededEventArgs.ToolTipText conforme especificado no manipulador de eventos.
Consulte também
.NET Desktop feedback