none
¿Como ajustar el contenido dentro de un formulario al maximizar la ventana en visual basic? RRS feed

  • Pregunta

  • Hola todos, como pueden ver necesito ayuda con algo que no he logrado conseguir aun, y es que como bien lo explica la pregunta no logro que el contenido del formulario (dos paneles, con 4 PictureBox cada uno en todo el centro del formulario) se ajuste bien al formulario a la hora de maximizarlo o volverlo pantalla completa; en todos los intentos hasta ahora lo único que he conseguido es que NO permanezca en su lugar original (se mueve de lugar) o que su tamaños sea totalmente desproporcional al formulario, por todos lados he leído que lo único que hay que hacer es modificar la propiedad Anchor o Dock, pero créanme no funciona, aun probando con un botón, simplemente hace lo que les acabo de comentar o lo mueve de lugar o aumenta su tamaño desproporcionalmente. por favor si alguien sabe como lograr que el contenido del formulario permanezca en su sitio con un aumento de tamaño proporcional al del formulario al ser maximizado se lo agradeceré mucho. la resolución del formulario que estoy manejando es de 960 x 540 exactamente la mitad de una resolución 1920 x 1080, lo que quisiera es que mi formulario doblara su tamaño nada más sin que su contenido se altere, muchas gracias de antemano a todos por la ayuda que me puedan brindar.

    sábado, 5 de noviembre de 2016 8:02

Respuestas

  • He hecho centenares de veces lo del Anchor y el Dock. Puedo asegurarte que funciona perfectamente. Si los componentes te cambian de tamaño cuando no deberían, quiere decir que has hecho mal el Anchor y has anclado dos lados simultaneamente, en lugar de solo el lado del anclaje.

    Nótese que no se "dobla" el tamaño del contenido del formulario, para eso necesitarías trabajar en WPF en lugar de Windows Forms. En Windows Forms lo que puedes conseguir es que ciertos componentes se "estiren" para mostrar más contenido. Por ejemplo si tienes en medio del formulario un Listbox que muestra 40 líneas, y le pones un Anchor que lo ancle arriba y abajo y a la derecha, lo que ocurre es que al maximizar el formulario el Listbox se queda pegado al borde de la derecha, y crece en altura hasta mostrar 80 líneas (no 40 líneas el doble de gordas). Y si tienes un textbox anclado a la derecha y a la izquierda y arriba, se vuelve más largo y caben más caracteres, mientras que permanece a la misma altura original.

    Esto hay que considererlo cuidadosamente analizando uno por uno cada uno de los controles y aplicándole los anclajes correctos para que haga algo razonable; al final, los controles que así hayas configurado ocuparán más espacio en el formulario y tendrán sitio para más información, pero la distribución o estética del formulario será diferente de la que tenía originalmente. Solo se "reorganiza", no se "dobla".

    sábado, 5 de noviembre de 2016 9:13

Todas las respuestas

  • He hecho centenares de veces lo del Anchor y el Dock. Puedo asegurarte que funciona perfectamente. Si los componentes te cambian de tamaño cuando no deberían, quiere decir que has hecho mal el Anchor y has anclado dos lados simultaneamente, en lugar de solo el lado del anclaje.

    Nótese que no se "dobla" el tamaño del contenido del formulario, para eso necesitarías trabajar en WPF en lugar de Windows Forms. En Windows Forms lo que puedes conseguir es que ciertos componentes se "estiren" para mostrar más contenido. Por ejemplo si tienes en medio del formulario un Listbox que muestra 40 líneas, y le pones un Anchor que lo ancle arriba y abajo y a la derecha, lo que ocurre es que al maximizar el formulario el Listbox se queda pegado al borde de la derecha, y crece en altura hasta mostrar 80 líneas (no 40 líneas el doble de gordas). Y si tienes un textbox anclado a la derecha y a la izquierda y arriba, se vuelve más largo y caben más caracteres, mientras que permanece a la misma altura original.

    Esto hay que considererlo cuidadosamente analizando uno por uno cada uno de los controles y aplicándole los anclajes correctos para que haga algo razonable; al final, los controles que así hayas configurado ocuparán más espacio en el formulario y tendrán sitio para más información, pero la distribución o estética del formulario será diferente de la que tenía originalmente. Solo se "reorganiza", no se "dobla".

    sábado, 5 de noviembre de 2016 9:13
  • Gracias por tu respuesta, bueno es cierto se supone que solo es necesario usar la propiedad Anchor para que todo funcione correctamente al maximizar el formulario, aunque la verdad he intentado de todas las maneras anclando solo un lado o dos o tres o los cuatro pero aun no logro conseguir que los paneles permanezcan en el centro del formulario al maximizarlo, probablemente sea un error mío desde la misma resolución original del formulario, sin embargo tengo otra cuestión que me surge a partir de esta, y es ¿Cómo mantener la proporción del formulario al redimensionarlo? me refiero a que el usuario al aumentar o disminuir el ancho o el alto del formulario cambien ambos lados manteniendo así una misma proporción o aspecto y no solo un lado del formulario. muchas gracias por tu ayuda de verdad es importante para mí, gracias.
    • Editado Jose Galvis sábado, 5 de noviembre de 2016 17:33
    sábado, 5 de noviembre de 2016 17:32
  • Siempre podrías implementar un manejador para el evento Resize del Form, y dentro del Resize leer el Width y el Height, calcular la proporción, y reajustar uno de los dos para que la proporción se mantenga. También puedes dentro del resize realizar cálculos y cambiar la posición de los controles para aquellas cosas que no se pueden hacer con el Anchor y el Dock. Por ejemplo, mantener un control centrado en el formulario sin que cambie su tamaño es algo que no se puede hacer con el Anchor, pero sí que se podría hacer calculando su Left y Top en el evento Resize.
    sábado, 5 de noviembre de 2016 20:07