Cómo: Agregar información sobre herramientas a celdas individuales en un control DataGridView de formularios Windows Forms
De manera predeterminada, la información sobre herramientas se utiliza para mostrar los valores de celdas de DataGridView que son demasiado pequeñas para mostrar su contenido completo. Sin embargo, puede reemplazar este comportamiento para establecer los valores de texto de información sobre herramientas en celdas individuales. Resulta útil para mostrar a los usuarios información adicional sobre una celda o para proporcionarles otra descripción del contenido de la celda. Por ejemplo, si tiene una fila que muestra los iconos de estado, puede proporcionar explicaciones de texto mediante la información sobre herramientas.
También puede deshabilitar la presentación de la información sobre herramientas en las celdas estableciendo la propiedad DataGridView.ShowCellToolTips en false.
Para agregar una información sobre herramientas a una celda
Establezca la propiedad 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"; } } }
Compilar el código
Para este ejemplo se necesita:
Un control DataGridView denominado dataGridView1 que contiene una columna denominada Rating para mostrar valores de cadena de uno a cuatro símbolos de asterisco ("*"). Se debe asociar el evento CellFormatting del control al método de control de eventos mostrado en el ejemplo.
Referencias a los ensamblados System y System.Windows.Forms.
Programación eficaz
Cuando enlace el control DataGridView a un origen de datos externo o proporcione su propio origen de datos implementando el modo virtual, se puede encontrar con problemas relacionados con el rendimiento. Para evitar una disminución del rendimiento cuando se trabaja con grandes cantidades de datos, controle el evento CellToolTipTextNeeded en lugar de configurar la propiedad ToolTipText de varias celdas. Cuando controle este evento, obtener el valor de la propiedad ToolTipText de una celda provoca el evento y devuelve el valor de la propiedad DataGridViewCellToolTipTextNeededEventArgs.ToolTipText tal como se ha especificado en el controlador de eventos.
Vea también
Referencia
DataGridView.CellToolTipTextNeeded
Otros recursos
Programar con celdas, filas y columnas en el control DataGridView de formularios Windows Forms