Compartir a través de


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

DataGridView.ShowCellToolTips

DataGridView.CellToolTipTextNeeded

DataGridViewCell

DataGridViewCell.ToolTipText

Otros recursos

Programar con celdas, filas y columnas en el control DataGridView de formularios Windows Forms