el Guille, la Web del Visual Basic, C#, .NET y más...

Adaptar el formulario al tamaño y posición del escritorio

 
Publicado el 15/Ago/2010
Actualizado el 15/Ago/2010
Autor: Guillermo 'guille' Som

Cómo averiguar las coordenadas y posición del área de trabajo del escritorio o pantalla del usuario de nuestra aplicación mediante la propiedad WorkingArea de la propiedad PrimaryScreen de la clase Screen.



 

Antecedentes:

Hace un rato he puntualizado una respuesta en mis foros, en el que la persona que preguntaba comentaba que asignaba el valor None a la propiedad FormBordeStyle con idea de que su formulario (o forma) no tuviese ningún tipo de borde ni botones de maximizar, minimizar ni cerrar, pero que quería que el formulario estuviese maximizado para que ocupara toda la pantalla, para ello le asigno el valor Maximized a la propiedad WindowState del formulario.
El problema es que al iniciar la aplicación (o lo que es lo mismo, cuando la aplicación estaba en funcionamiento), le ocupaba toda la pantalla, pero también ocultaba la barra de Windows, y esa barra quería que se pudiera ver y acceder.

 

La solución:

La forma de solucionar ese "pequeño" inconveniente es NO asignar el valor Maximized a la propiedad WindowState, si no el valor Normal (el que tiene de forma predeterminada), pero si se hace eso, la ventana tendría el tamaño que se le haya dado en tiempo de diseño, por tanto, lo que hay que hacer es averiguar el tamaño de la ventana pero de Windows (¿como traducirían esto los anglófonos?), es decir, hay que saber qué tamaño tiene el "área de trabajo" (así se llama a la parte visible y en la que las aplicaciones pueden mostrarse en el escritorio de Windows).

Pero no solo hay que averiguar que tamaño tiene el área de trabajo, ya que también es necesario saber cuales son las coordenadas de la esquina superior izquierda, ya que el área "libre" del escritorio de Windows varia según donde esté situada la barra de Windows, y esta la podemos tener en cualquiera de los cuatro bordes de la pantalla.

Por tanto, necesitamos saber la posición y el tamaño que debemos darle a nuestro formulario principal.
Ese tamaño y posición lo obtenemos de la propiedad WorkingArea de la propiedad PrimaryScreen de la clase Screen que esta definida en el espacio de nombres System.Windows.Forms.

El tamaño lo obtenemos mediante la propiedad Size, y la posición superior izquierda la obtenemos de la propiedad Location, sabiendo esto, lo que debemos escribir en el evento Form_Load es el siguiente código:

Para Visual Basic:

Me.Location = Screen.PrimaryScreen.WorkingArea.Location
Me.Size = Screen.PrimaryScreen.WorkingArea.Size

 

Para C#:

this.Location = Screen.PrimaryScreen.WorkingArea.Location;
this.Size = Screen.PrimaryScreen.WorkingArea.Size;

 

 

Espero que te sea de utilidad.

Nos vemos.
Guillermo

 


Espacios de nombres usados en el código de este artículo:

System.Windows.Forms
 



 


La fecha/hora en el servidor es: 21/12/2024 17:40:45

La fecha actual GMT (UTC) es: 

©Guillermo 'guille' Som, 1996-2024