none
Formularios Windows Forms RRS feed

  • Pregunta

  • Tengo algunas dudas sobre los formularios:

    1.- Se puede de alguna manera redondear los bordes de un formulario?

    2.- Estaba intentando hacer un Splash Screen para una tarea pero al poner la opción none en las propiedades del formulario debería hacerse invisible y solo quedarme la imagen que estoy colocando junto al ProgressBar como sale el Splash Screen de Photoshop al iniciar la aplicación pero el fondo del formulario sigue apareciendo, hay alguna otra manera de hacerlo?

    3.- Se puede redondear los borden de un TextBox? Que tendría que hacer en caso de que sí.

    viernes, 29 de enero de 2021 5:15

Respuestas

  • Si solo es para hacer un "splash" y que quede redondeado, puedes suprimir todos los bordes del form y simplemente poner de fondo una imagen que esté redondeada y tenga marcadas como "trasparentes" las porciones de fuera del redondeo. Para suprimir el borde, no es suficiente con decirle que el estilo de borde es "none". Además hay que poner "false" en todos los botones (minimizar, maximizar, cerrar, etc).

    Si quisieras redondear los bordes de un formulario de verdad, tienes que suprimir por completo el dibujo de la croma y dibujarla por tu cuenta. Esto requiere usar P/Invoke para llamar directamente a las APIs del sistema. Es factible pero muy complicado. Ya hay gente que lo ha hecho -- si haces una búsqueda por Internet encontrarás (pocos) artículos que lo explican.

    Lo mismo pasa con los bordes del TextBox. Si quieres redondearlos, hay que suprimirlos por completo y dibujarlos por tu cuenta. Pero en este caso es un poco más sencillo que con los bordes del formulario, porque el TextBox se puede hacer enteramente usando código de .Net. También se puede hacer con llamadas a las API. Por ejemplo, haciendo una búsqueda rápida este es el primer ejemplo que me sale: https://stackoverflow.com/questions/58613713/how-to-make-a-textbox-with-rounded-corner-in-c

    Otra alternativa sería usar WPF en lugar de Windows Forms. Ahí sí que es fácil, puedes redondearlo solo con meter unas pocas declaraciones en el XAML.

    • Marcado como respuesta EricRRModerator viernes, 29 de enero de 2021 17:05
    viernes, 29 de enero de 2021 7:45
    Moderador

Todas las respuestas

  • Si solo es para hacer un "splash" y que quede redondeado, puedes suprimir todos los bordes del form y simplemente poner de fondo una imagen que esté redondeada y tenga marcadas como "trasparentes" las porciones de fuera del redondeo. Para suprimir el borde, no es suficiente con decirle que el estilo de borde es "none". Además hay que poner "false" en todos los botones (minimizar, maximizar, cerrar, etc).

    Si quisieras redondear los bordes de un formulario de verdad, tienes que suprimir por completo el dibujo de la croma y dibujarla por tu cuenta. Esto requiere usar P/Invoke para llamar directamente a las APIs del sistema. Es factible pero muy complicado. Ya hay gente que lo ha hecho -- si haces una búsqueda por Internet encontrarás (pocos) artículos que lo explican.

    Lo mismo pasa con los bordes del TextBox. Si quieres redondearlos, hay que suprimirlos por completo y dibujarlos por tu cuenta. Pero en este caso es un poco más sencillo que con los bordes del formulario, porque el TextBox se puede hacer enteramente usando código de .Net. También se puede hacer con llamadas a las API. Por ejemplo, haciendo una búsqueda rápida este es el primer ejemplo que me sale: https://stackoverflow.com/questions/58613713/how-to-make-a-textbox-with-rounded-corner-in-c

    Otra alternativa sería usar WPF en lugar de Windows Forms. Ahí sí que es fácil, puedes redondearlo solo con meter unas pocas declaraciones en el XAML.

    • Marcado como respuesta EricRRModerator viernes, 29 de enero de 2021 17:05
    viernes, 29 de enero de 2021 7:45
    Moderador
  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    viernes, 29 de enero de 2021 15:16
    Moderador