Abrir un Form en cualquier pantalla utlizando C#

Virt7En la actualidad es bastante habitual el tener más de una pantalla conectado a nuestro ordenador, ya sea dos pantallas, pantalla y televisión, etc.

Esto lo podemos aprovecharlo para mostrar diferentes ventanas de nuestros programa en cada una de las pantallas.

Windows maneja los multimonitores como si fuera uno con la resolución de la suma de todos ellos, es decir, si tenemos 2 monitores con una resolución de 1024×768 cada uno, para windows la resolución de la pantalla sera de 2048×768.

Con lo que, para poder posicionar nuestro nuevo formulario en el otro monitor, le sumaríamos  la resolución de nuestro monitor al parámetro “left” de nuestro nuevo Form. Si solo utilizamos 2 monitores no hay problema, pero cuando son varios monitores y con distintas resoluciones cada uno, se complica la cosa.

Para hacernos la vida mas fácil, C#  dispone de una clase llamada “Screen” de donde podemos obtener mucha información de las pantallas que tenemos instaladas en nuestro equipo. Una de estas funciones que hay en “Screen” es “Bound”, esta función nos devuelve la posición de la esquina superior izquierda, es decir, “Left” y “Top” donde empieza cada una de las pantallas.

Declaración de la variable

Funcionamiento

Como siempre, cuando hacemos referencia a una lista la posición siempre empieza por “0”. Si queremos referirnos al monitor 2, tendríamos que por 1.

Este ejemplo abriría nuestro nuevo formulario en la posición 0, 0 de la pantalla 2.

Si queremos posicionarlo en otro lugar de la pantalla que fuese la 0, 0, sumaríamos el desplazamiento correspondiente tanto al parámetro “Left” como al “Top”.

En este otro ejemplo, el formulario se abriría en la posición 200×100 del monitor 3.

Para saber cuantos monitores tenemos funcionando en nuestro equipo podemos utilizar la siguiente función.

Y ya esta con esto podemos abrir nuestro Form en cualquier monitor sin preocuparnos que resolución tiene cada uno.

5 thoughts on “Abrir un Form en cualquier pantalla utlizando C#”

    1. No quiero parecer borde, pero te recomiendo que te bajes algún manual de C#, hay millones, como se suele decir antes de correr hay que caminar. El objeto fNuevo es un formulario, si todavía no sabes como se crean los formularios, antes de mirar en que pantalla lo abro, tienes que saber como se trabaja con ellos.

  1. Hola, quisiera saber si me puedes ayudar, ¿Cómo se podría abrir en la otra pantalla el form maximizado?, me imagino algo como, primero ubicarlo y después maximizarlo, pero no se si tienes una solución mejor, de ante mano muchas gracias

    1. En principio como comentas te tendría que funcionar. Otra cosa que se me ocurre seria crearlo, configurar la posición activar la opción de maximizar y al final de todo activarlo. No lo he probado pero en teoría tendría que funcionar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *