Social Icons

twitterfacebookgoogle pluslinkedinrss feedemail

Pages, oficial

lunes, 26 de marzo de 2012

Clases de Estilos de Windows en C#

Añadir Sombra a un Formulario sin Bordes

La primera entrada de programación  C # y Windows Forms este es tip si podría llamare así, es útil cuando usamos un ventana sin bordes en mi caso lo use  para un acceso o login.

Cuando una ventana tiene borde tiene sombra por defecto:


ahora la misma ventana sin borde


Aplicando el estilo de sombra aun formulario sin bordes



Para lograr este resultado se debe añadir la siguientes lineas de código en la clase del Formulario.


private const int CS_DROPSHADOW = 0x20000;


        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                
                cp.ClassStyle |= CS_DROPSHADOW;

                return cp;
            }
        }    



Desactivar el botón de cerrar en un Formulario 

Por defecto el  formulario se crea con los botones de  Minimizar Maximizar y Cerrar en esta caso desactivaremos el botón de cerrar, útil cuando obligamos un usuario a realizar una acción antes de cerrar el Formulario.


Ahora el formulario con el botón de cerrar desactivado


este resultado se logra aplicando  las siguientes lineas de codigo en la clase del Formulario. 

private const int CS_NOCLOSE = 0x0200;


        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;

                cp.ClassStyle |= CS_NOCLOSE;

                return cp;
            }
        }


Createparams contiene los parámetros de creación de formulario  con override modificamos estos, en posteriores publicaciones mostraremos mas sobre Clases de estilos de Windows en c#  y Windows Forms



3 comentarios:

  1. En que parte de la clase la pongo, la he probado y no me funciona, puedes ser mas especifico en el ejemplo por favor

    ResponderEliminar
  2. Si funciona pero se nota muy poco y solo sobre un lado no se puede que se muestre en todo el contorno y hacer que se note mas? intente modificar el valor pero no quiso iniciar :(

    ResponderEliminar

Comenta...