En esta oportunidad quiero mostrarle como configurar nuestro formulario en visual basic .net para que tenga una apariencia totalmente distinta a la que estamos acostumbrados, por ejemplo, como se ve en la siguiente figura:

Lo primero que necesitamos es crear la imágen que utilizaremos de base para el fondo. En este ejemplo uso una imagen en formato PNG porque pueden tener un fondo transparente. Puedes usar cualquier programa para crear la imagen (yo prefiero PhotoShop).
Si hacés clic sobre la siguiente imagen, podrás bajarla para usarla para practicar.
Abrimos un proyecto visual estudio y un formulario windows y configuramos las siguientes propiedades:
BackgroundImage: nuestra imagen PNG
ControlBox: False
FormBorderStyle: None
StartPosition: CenterScreen
BackgroundImageLayout: None
BackColor: Goldenrod
TansparencyKey: Goldenrod
Luego agregamos los demás controles, en este caso 4 label’s, 4 textbox’s y 1 botón. Como este ejemplo es solo de la parte estética del formulario no voy a poner ningún evento en el botón guardar ni ninguna validación en los cuadros de texto.
Notarán que con esta configuración ya no tenemos la barra de título y por conseguiente los botones de miminizar, maximizar y cerrar. En su lugar agregué una imagen para poder cerrar el formulario. Para que esto funcione agregué un panel con color de fondo transparente sobre la X roja y programé el evento click del panel para poder cerrar el formulario.
Una parte importante a tener en cuenta (el secreo para que una parte del formulario se vuelva transparente) es que el backColor y el TransparentKey del formulario deben ser exactamente el mismo. Les recomiendo usar un color que no usen en la imagen ni en los controls que usen en la aplicación.
Si ya terminaron pueden ejecutar la aplicación y probar la nueva apariencia del formulario…
…
…
y?
…
si, a mi también me pasó. Está muy bueno, pero no tiene barra de título y entonces no puedo moverlo…
Estuve buscando como solucionar este problema y encontré una forma de que realmente funciona muy bien. Este código pegado en cualquier parte del formulario nos permitirá moverlo como si lo estuvieramos tomando de la barra de título.
Const WM_NCHITTEST As Integer = &H84
Const HTCLIENT As Integer = &H1
Const HTCAPTION As Integer = &H2
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case WM_NCHITTEST
MyBase.WndProc(m)
If m.Result = HTCLIENT Then m.Result = HTCAPTION
Case Else
MyBase.WndProc(m)
End Select
End Sub
Información Bitacoras.com…
Valora en Bitacoras.com: En esta oportunidad quiero mostrarle como configurar nuestro formulario para que tenga una apariencia totalmente distinta a la que estamos acostumbrados, por ejemplo, como se ve en la siguiente figura: Lo primero que necesita…..
Esta de pelos, solo que no se pero no me aplica el estilo a los botones y otros elementos dentro del formulario. Por lo demás que gran herramienta para salir de lo común en la creación de formularios.
GRACIAS POR EL APORTE.
Que exelente esta salir de lo comun
Thank you!
bueno creo que es un excelente truco pero no me sale bien ya modifique todas las propiedades que se especifican arriba pero no sale el efecto de transparencia sino que siempre se muestra el color del backcolor o el del TansparencyKey que es el mismo uso visual basic .net 05 y no me funciona abra otra forma de hacer o no MUCHAS GRACIAS por la idea y a veriguare en que e fallado si pueden ayudarme muchisimas gracias de antemano
Sam, ante tu pedido, me tome el trabajo de volver a hacer el ejemplo y te voy a listar paso a paso lo que hago para que vuelvas a probarlo.
1- creo un formulario
2- Cargo la imagen en la propiedad BackgroungImage
3- BackgroundImageLayout = Nome
4- Backcolor = Chocolate (por ejemplo)
5- TransparencyKey = Chocolate (tiene que ser el mismo del punto 4)
6- FormBorderStyle = None
7- ControlBox = False
Todas estas propiedades son del formulario.
Luego ejecutas la aplicación y listo.
Te doy otro consejo… cuando algo no me funciona muchas veces la mejor solución es dejar de dar vueltas con el formulario que no funciona y hacerlo de desde cero en uno nuevo.
hey ELISEO MUCHISIMAS GRACIAS el consejo de olvidarme del formulario y hacer otro de nuevo salio a la perfeccion creo que visual en ocasiones se pone un poco loco pero el dejar de provar con el mismo formulario e intentar con otro si me funciono siceramente muchas GRACIAS hasta pronto.
hola aqui devuelta molestando pero tengo un problema el truco del formulario irregular ya me salio y todo ya bien asta ahi pero cuando lo coloco como formulario hijo no me sale el efecto al parecer el colocarlo como hijo evita que el efecto funcion
tengo un formulario principas que se llama form_principal y un formulario secundario que se llama prueva
la situacion esta haci cuando llamo el formulario prueva con el siguiente codigo
nombre_del_proyecto_que_estoy_haciendo.prueva.Show()
con el codigo anterior todo sale a la perfeccion
pero cuando quiero poner el formulario prueva como hijo del form_principal solo le agrego una linea de codigo mas pero esto evita que el efecto resulte bien lo que agrego es lo siguiente
nombre_del_proyecto_que_estoy_haciendo.prueva.MdiParent=Me
nombre_del_proyecto_que_estoy_haciendo.prueva.Show()
claro que el formulario form_principal tiene la propiedad ismdicontainer = true
esto para que funcione como contenidor
bueno al parecer este codigo que sirve para colocar el formulario prueva como hijo es el que evita que el efecto funcione
si pueden ayudarme se los agradeceria y gracias por tomarse la molestia de leer este post esperando una ayuda se despide SAM
Sam, lamentablemente no se si se puede conservar estas propiedades aplicando la propiedad MdiParent. Lo más probable es que no.
bueno muchas gracias por sacarme de la duda he buscado mucho y al parecer no funciona utilizando la propiedaf MdiParent
sinceramente este ejemplo no lo encuentras en ningun lado te pasate amigo muy buen ejemplo y gracias por colaborar de esa forma
salu2
Gracias por este magnifico ejemplo saludos
hola no encontre un lugar generico para poder dejar un comentario es por eso que lo dejare aqui bueno primero que todo gracias por este ejemplo que lo encontre de rebote pero que esta muy bueno me llamo la atencion y lo prove y me salio a la perfeccion pero tengo una gran pregunta ojala me puedad ayudar
bien lo que nesecito crear es un proyecto en el cual tenga la posibilidad de manipular una webcam. y lo que debo de hacer en capturar video y poder mover la camara desde el formulario hacia la derecha, izquierda arriba y abajo
bueno lo de capturar video ya tengo una idea de como hacerlo pues he buscado mucho en internet y he encontrado varios ejemplos de como hacerlo pero aun no los he probado esto en porque no tengo una webcam.
sabiendo lo anterion nesecito que me ayuden tambien a darme un consejo de cual seria el tipo de camara que debo de comprar para llevar acabo el proyecto es decir por logica tiene que se una camara que tenga la posivilidad de movimiento por medio de motorcitos o algo asi
en resumen lo que tengo que hacer es que por medio de un formulario capturar video de una webcam mover la webcam arriba abajo derecha e izquierda y por ultimo hacer zoom
agradeciendo la su tiempo prestado para leer este post me despido
salu2 a todos y ojala puedan ayudarme “JUAN”
una pregunta e hecho todo lo que has dicho , adicionalmente le e colocado un panel transparente para minimizar hasta alli ok, pero cuando maximo el panel tanto del cerrar como del minimizar se vuelven negros
eliseo, la verdad me funciono muy bien todo; pero queria pedirle un gran favor si no es molestia; por que quiero aprender me gustaria saber que traduce las lineas de codigo que colocamos al final para poder mover el formulario?, me gustaria entender el codigo…
Gracias.
Muy bueno mas simple de las vainas que hize,,
yo hize algo similar pero los formularios los hacia en photoshop.. y las imagenes las jalaba en resources..
biendo tu forma esta mas simple .. creo que me complique la vida…
una buena opcion de hacer algo bueno…
hola, y cómo haces el diseño del botón??