none
Cómo centro horizontalmente el contenido de un ToolTip RRS feed

  • Pregunta

  • Tengo un tooltip en dos líneas, buscando información veo que tiene una propiedad HorizontalAlign pero no me aparece.

    ¿Cómo centraría estas dos líneas? (pongan el código porfa)

    Lo tengo definido así, pero si tienen otra forma mejor, les agradecería que lo pongan:

    ---------------------------------------------

    Dim oTip As New ToolTip, botBoton as new Button

    oTip.SetToolTip(botBoton, "Primera linea" & Chr(13) & "y esta es la segunda linea")

    ---------------------------------------------

    Al ejecutar, las dos líneas del tooltip aparecen alineadas a la izquierda, quiero que se vean centradas.

     
    sábado, 13 de febrero de 2016 7:56

Respuestas

  • Deberías poner la propiedad OwnerDraw a True y crearte un controlador para el evento Draw del ToolTip:

            Dim oTip As New ToolTip, botBoton as new Button
            oTip.OwnerDraw = True
            AddHandler oTip.Draw, AddressOf oTip_Draw
            oTip.SetToolTip(botBoton, "Primera linea" & Chr(13) & "y esta es la segunda linea")
    

    y en el controlador del evento Draw indicar la alineación del texto:

        Private Sub oTip_Draw(sender As Object, e As DrawToolTipEventArgs)
            e.DrawBackground()
            e.DrawBorder()
            e.DrawText(TextFormatFlags.HorizontalCenter)
        End Sub


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 sábado, 13 de febrero de 2016 22:37
    sábado, 13 de febrero de 2016 9:57
  • Ese es un viejo problema, no de SQL Server, si no de los motores de base de datos en general.

    El almacenar la únicamente la ruta en la base de datos y el archivo en el sistema de archivos es una opción.

    Sin embargo SQL Server te ofrece la opción de utilizar FILESTREAM que realiza esto mismo de forma transparente. Es decir, configurar un campo para almacenar el contenido de un archivo mientras el SQL Server internamente lo mantiene en el sistema de archivos para evitar los problemas que comentas.

    En el link puedes ver en qué consiste exactamente así como información sobre cuando es conveniente utilizarlo.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 lunes, 15 de febrero de 2016 6:27
    domingo, 14 de febrero de 2016 9:14

Todas las respuestas

  • Deberías poner la propiedad OwnerDraw a True y crearte un controlador para el evento Draw del ToolTip:

            Dim oTip As New ToolTip, botBoton as new Button
            oTip.OwnerDraw = True
            AddHandler oTip.Draw, AddressOf oTip_Draw
            oTip.SetToolTip(botBoton, "Primera linea" & Chr(13) & "y esta es la segunda linea")
    

    y en el controlador del evento Draw indicar la alineación del texto:

        Private Sub oTip_Draw(sender As Object, e As DrawToolTipEventArgs)
            e.DrawBackground()
            e.DrawBorder()
            e.DrawText(TextFormatFlags.HorizontalCenter)
        End Sub


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 sábado, 13 de febrero de 2016 22:37
    sábado, 13 de febrero de 2016 9:57
  • ...interesante y es posible combinar con OR otros valores de TextFormatFlags noo?

    Qué maravilla los objetos de visual net. Todo se puede. Hasta aquí ya tengo todo ok, gracias de nuevo.

    -------------------------------------------------------------------------------------------------------------------------

    Otra consulta sobre otro punto que no me decido cómo hacerlo. Lo describo:

    Tenía un programita hecho en VB6 con una tabla con 20 mil registros mas o menos y tenia tres campos para almacenar fotos, al principio corría fluido pero a medida que fueron aumentando los registros con mas fotos se fue haciendo pesado el programa, se tardaba en leer registros y la tabla creció en tamaño elefantiásicamente al extremo que tuve que hacer una modificación. La solución que encontré por ese entonces fue: transferí las imágenes a archivos independientes .jpg y quité de la tabla los campos que los almacenaban. Cuando abría los registros accedía a las fotos basado en el nombre del archivo que se relacionaba con uno de los campos, con eso el programa "volvió a la normalidad".

    La consulta es:

    ¿Cuál es la mejor forma que almacene las imagenes sin que vaya a tener nuevamente ese problema? ¿es recomendable que las guarde en una tabla en un campo binario o por el contrario es mejor que las guarde en archivos separados como imagenes independientes? ¿o cuál es la técnica recomendable?

    Cabe mencionar que la tabla almacenará de unas 20 a 30 mil filas, que la base es de SQL Server y que el programa debe funcionar en red inalambricamente.


    • Editado James-2016 sábado, 13 de febrero de 2016 22:39
    sábado, 13 de febrero de 2016 22:37
  • Ese es un viejo problema, no de SQL Server, si no de los motores de base de datos en general.

    El almacenar la únicamente la ruta en la base de datos y el archivo en el sistema de archivos es una opción.

    Sin embargo SQL Server te ofrece la opción de utilizar FILESTREAM que realiza esto mismo de forma transparente. Es decir, configurar un campo para almacenar el contenido de un archivo mientras el SQL Server internamente lo mantiene en el sistema de archivos para evitar los problemas que comentas.

    En el link puedes ver en qué consiste exactamente así como información sobre cuando es conveniente utilizarlo.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 lunes, 15 de febrero de 2016 6:27
    domingo, 14 de febrero de 2016 9:14
  • Eso es precisamente lo que buscaba (SQL Server ya lo había pensado jaja), de esta forma se evita además el problema de transferir por separado el archivo a un equipo cliente. Estoy tratando de crear el campo binario pero aun no logro hacerlo voy a seguir intentando y sino te escribo nuevamente en esta misma pregunta para que me des una mano.
    lunes, 15 de febrero de 2016 6:27
  • Hola, finalmente pude crear el campo binario y agregarle datos (aun no a nivel de programa solo desde el SQL Server). Pero hay algunas cosas que no me quedan claras. Comento:

    ------------------------------------------------------------

    1º Al agregar la primera foto se crearon una serie de carpetas (me refiero a las tres del medio).

    (las fotos solo se guardan en una subcarpeta de la penúltima carpeta de la imagen y las otras permanecen vacías):

    ¿Es normal o algo hice mal?

    2º Cuando elimino una fila (desde el SQL Server) se elimina pero el archivo continua en el disco, a pesar que tengo solo tres filas con fotos, en la carpeta aparecen todas las que agregué ocupando espacio (¿cómo se quitan?):

    3º Agrego la foto con este comando, ¿hay otro comando que haga lo mismo? ¿Qué hace exactamente la parte que agrega la foto? ¿Es la misma línea para cualquier tipo de archivo como .doc por ej?

    INSERT INTO Foto(IdFoto, Foto)
     SELECT 9241 AS IdFoto, * FROM OPENROWSET(BULK N'D:\Foto alta.jpg', SINGLE_BLOB) AS Foto;


    • Editado James-2016 martes, 16 de febrero de 2016 8:37
    martes, 16 de febrero de 2016 8:33
  • Hola de nuevo, estuve investigando más al respecto y encontré información donde explican que es normal que los archivos no se quiten aún cuando el registro fue borrado. Las imagenes eliminadas en los registros siguen quedando en el disco duro y SQL Server los elimina del disco periodicamente de manera automática.
    jueves, 18 de febrero de 2016 22:54