none
Cómo asociarle un tooltip a un Datagridview RRS feed

  • Pregunta

  • Sin usar los eventos del Datagridview. Quiero asociarle un tooltip externo, se lo asocio así:

    tooltip1.settooltip(Datagridview1,"texto del tooltip")

    Lo asocia en teoría pero cuando ejecuto el programa y paso el cursor no aparece ¿cómo hago para que se vea?

    lunes, 22 de febrero de 2016 5:46

Respuestas

  • "James-2016" escribió:

    > Sin usar los eventos del Datagridview. Quiero asociarle
    > un tooltip externo, se lo asocio así:

    Si por casualidad tu control DataGridView se encuentra enlazado a un origen de datos, yo te lo puedo explicar utilizando eventos del propio control DataGridView, que digo yo que para algo se inventaron, y para tu caso, concretamente es el evento CellToolTipTextNeeded el que necesitas controlar para establecer el texto informativo que deseas que aparezca en la celda donde actualmente se encuentra posicionado el puntero del ratón.

    Si deseas probar el ejemplo, olvídate de asociarle al control DataGridView un "tooltip externo" e inserta en el formulario el siguiente evento:

        Private Sub DataGridView1_CellToolTipTextNeeded(sender As Object, e As DataGridViewCellToolTipTextNeededEventArgs) Handles DataGridView1.CellToolTipTextNeeded
    
            If ((e.ColumnIndex > -1) AndAlso (e.RowIndex > -1)) Then
                Dim cell As DataGridViewCell = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
                e.ToolTipText = Convert.ToString(cell.Value)
            End If
    
        End Sub

    Cuando muevas el ratón por las distintas celdas del control DataGridView te aparecerá la información del valor que actualmente tenga la celda. Ni que decir tiene que a la propiedad e.ToolTipText le puedes asignar el valor que estimes conveniente.

    Y si a pesar de lo indicado deseas continuar asignándole un "Tooltip externo", te deseo suerte para que puedas encontrar una solución satisfactoria, que por ahora ignoro si hay alguna que te pueda satisfacer. ;-)


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    lunes, 22 de febrero de 2016 19:47
    Moderador

Todas las respuestas

  • Puedes usar el evento CellFormatting:

    Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting

        With DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
            .ToolTipText = "texto del tooltip"
        End With

    End Sub


    Saludos, Javier J

    lunes, 22 de febrero de 2016 8:32
  • Gracias pero yo quiero aplicarle propiedades al control tooltip por eso preferiría que sea independiente, otra idea?
    lunes, 22 de febrero de 2016 8:38
  • Vale, si necesitas usar un control Tooltip tienes que poner a false ShowCellToolTips en el grid :

    ToolTip1.SetToolTip(DataGridView1, "Prueba de tooltip")
    DataGridView1.ShowCellToolTips = False


    Saludos, Javier J

    lunes, 22 de febrero de 2016 11:38
  • :'(

    Sigue sin mostrarlo, por qué puede ser?



    • Editado James-2016 lunes, 22 de febrero de 2016 17:36
    lunes, 22 de febrero de 2016 17:35
  • "James-2016" escribió:

    > Sin usar los eventos del Datagridview. Quiero asociarle
    > un tooltip externo, se lo asocio así:

    Si por casualidad tu control DataGridView se encuentra enlazado a un origen de datos, yo te lo puedo explicar utilizando eventos del propio control DataGridView, que digo yo que para algo se inventaron, y para tu caso, concretamente es el evento CellToolTipTextNeeded el que necesitas controlar para establecer el texto informativo que deseas que aparezca en la celda donde actualmente se encuentra posicionado el puntero del ratón.

    Si deseas probar el ejemplo, olvídate de asociarle al control DataGridView un "tooltip externo" e inserta en el formulario el siguiente evento:

        Private Sub DataGridView1_CellToolTipTextNeeded(sender As Object, e As DataGridViewCellToolTipTextNeededEventArgs) Handles DataGridView1.CellToolTipTextNeeded
    
            If ((e.ColumnIndex > -1) AndAlso (e.RowIndex > -1)) Then
                Dim cell As DataGridViewCell = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
                e.ToolTipText = Convert.ToString(cell.Value)
            End If
    
        End Sub

    Cuando muevas el ratón por las distintas celdas del control DataGridView te aparecerá la información del valor que actualmente tenga la celda. Ni que decir tiene que a la propiedad e.ToolTipText le puedes asignar el valor que estimes conveniente.

    Y si a pesar de lo indicado deseas continuar asignándole un "Tooltip externo", te deseo suerte para que puedas encontrar una solución satisfactoria, que por ahora ignoro si hay alguna que te pueda satisfacer. ;-)


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    lunes, 22 de febrero de 2016 19:47
    Moderador
  • Sí, lo tengo enlazado a datos, lo que pasa es que quería cambiar la forma del rectangulo por una de globo.

    Gracias de todos modos. Si no consigo hacerlo de otra forma el código que me proporciona también me sirve.

    • Editado James-2016 martes, 23 de febrero de 2016 5:49
    martes, 23 de febrero de 2016 5:35
  • Exelente tu Ejemplo me ha servido mucho. hay alguna forma de aumentat el tamaño de letra a tu ejemplo, o de formatear el cuadro de la nota. Ejemplo el tiempo que se queda visible, letra color etc

    Buen Trabajo

    jueves, 6 de septiembre de 2018 15:27