Procedimiento para agregar información sobre herramientas a celdas individuales en un control DataGridView de formularios Windows FormsHow to: Add ToolTips to Individual Cells in a Windows Forms DataGridView Control

De forma predeterminada, la información sobre herramientas se usa para mostrar los valores de DataGridView celdas que son demasiado pequeñas para mostrar todo su contenido.By default, ToolTips are used to display the values of DataGridView cells that are too small to show their entire contents. Puede invalidar este comportamiento, sin embargo, para establecer los valores de texto de información sobre herramientas de celdas individuales.You can override this behavior, however, to set ToolTip-text values for individual cells. Esto es útil para mostrar a los usuarios información adicional sobre una celda o para proporcionar a los usuarios una descripción alternativa del contenido de la celda.This is useful to display to users additional information about a cell or to provide to users an alternate description of the cell contents. Por ejemplo, si tiene una fila que muestra los iconos de estado, es posible que desee proporcionar explicaciones de texto mediante información sobre herramientas.For example, if you have a row that displays status icons, you may want to provide text explanations using ToolTips.

También puede deshabilitar la presentación de información sobre herramientas de nivel de celda estableciendo el DataGridView.ShowCellToolTips propiedad false.You can also disable the display of cell-level ToolTips by setting the DataGridView.ShowCellToolTips property to false.

Para agregar una información sobre herramientas a una celdaTo add a ToolTip to a cell

  • Establecer la propiedad DataGridViewCell.ToolTipText.Set the DataGridViewCell.ToolTipText property.

    // 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 'dataGridView1_CellFormatting
    

Compilar el códigoCompiling the Code

  • Para este ejemplo se necesita:This example requires:

  • Un DataGridView control denominado dataGridView1 que contiene una columna denominada Rating para mostrar los valores de cadena de uno a cuatro asterisco ("*") los símbolos.A DataGridView control named dataGridView1 that contains a column named Rating for displaying string values of one through four asterisk ("*") symbols. El CellFormatting evento del control debe estar asociada con el método de controlador de eventos que se muestra en el ejemplo.The CellFormatting event of the control must be associated with the event handler method shown in the example.

  • Referencias a los ensamblados System y System.Windows.Forms.References to the System and System.Windows.Forms assemblies.

Programación sólidaRobust Programming

Al enlazar la DataGridView el control a un origen de datos externo o proporcionar su propio origen de datos al implementar el modo virtual, podría encontrar problemas de rendimiento.When you bind the DataGridView control to an external data source or provide your own data source by implementing virtual mode, you might encounter performance issues. Para evitar una reducción del rendimiento cuando se trabaja con grandes cantidades de datos, controlar el CellToolTipTextNeeded evento en lugar de la configuración de la ToolTipText propiedad de varias celdas.To avoid a performance penalty when working with large amounts of data, handle the CellToolTipTextNeeded event rather than setting the ToolTipText property of multiple cells. Cuando controle este evento, obtener el valor de una celda ToolTipText propiedad provoca el evento y devuelve el valor de la DataGridViewCellToolTipTextNeededEventArgs.ToolTipText la propiedad especificados en el evento de controlador.When you handle this event, getting the value of a cell ToolTipText property raises the event and returns the value of the DataGridViewCellToolTipTextNeededEventArgs.ToolTipText property as specified in the event handler.

Vea tambiénSee also