none
¿WinForm a pantalla completa independientemente de la resolución/tamaño de una pantalla? RRS feed

  • Pregunta

  • ¿Cómo sería para hacer una aplicación, digamos que de 1280*768, a pantalla completa, y que pueda ejecutarse en una pantalla con una resolución de 640*480, por ejemplo?

    Uso C#

    sábado, 8 de septiembre de 2012 18:54

Respuestas

  • La primera alternativa es la de diseñar el form en 1280*768 y colocar dentro los controles como te parezca. Si alguien lo ejecuta con menor resolución, aparecerán atumáticamente barras de scroll para poder ver todos los controles que hay en el formulario. Esto funciona, pero no es cómodo para el usuario porque requiere hacer uso contínuo del scroll para moverse por el formulario.

    Otra alternativa es la de hacer uso juicioso de distintas combinaciones de los contenedores FlowLayoutPanel y TableLayoutPanel, así como de las propieadades Anchor y Docking de los controles, con el fin de diseñar un formulario "flexible", que al cambiar de tamaño automáticamente reorganice su contenido. De esta manera, cambiando la posición y tamaño de los controles, se puede buscar la combinación óptima que ocasione las mínimas molestias al usuario que solo dispone de una resolución baja.

    • Marcado como respuesta RuliLG domingo, 9 de septiembre de 2012 17:27
    domingo, 9 de septiembre de 2012 13:58
  • Puestos a volver a pintar manualmente el diseño para cada resolución, más que hacer varias aplicaciones yo haría varios formularios y los metería todos en la misma aplicación. De esa forma no duplicaría el código, del que existiría una única copia, y solo quedaría duplicado el diseño de la pantalla. Para sacar una u otra resolución, bastaría con meter una serie de "if" anidados que vayan comparando la resolución actual con los valores previstos y llamen al método Show de aquel formulario que coincida con la resolución prevista. Aun así, me parece que la cantidad de trabajo duplicado hace que esta forma de construir la aplicación sea poco recomendable. Sigo pensando que es preferible hacer la pantalla una sola vez, y hacerla flexible para que ella sola se reorganice en función de la resolución disponible.

    • Marcado como respuesta RuliLG domingo, 9 de septiembre de 2012 17:27
    domingo, 9 de septiembre de 2012 17:07

Todas las respuestas

  • La primera alternativa es la de diseñar el form en 1280*768 y colocar dentro los controles como te parezca. Si alguien lo ejecuta con menor resolución, aparecerán atumáticamente barras de scroll para poder ver todos los controles que hay en el formulario. Esto funciona, pero no es cómodo para el usuario porque requiere hacer uso contínuo del scroll para moverse por el formulario.

    Otra alternativa es la de hacer uso juicioso de distintas combinaciones de los contenedores FlowLayoutPanel y TableLayoutPanel, así como de las propieadades Anchor y Docking de los controles, con el fin de diseñar un formulario "flexible", que al cambiar de tamaño automáticamente reorganice su contenido. De esta manera, cambiando la posición y tamaño de los controles, se puede buscar la combinación óptima que ocasione las mínimas molestias al usuario que solo dispone de una resolución baja.

    • Marcado como respuesta RuliLG domingo, 9 de septiembre de 2012 17:27
    domingo, 9 de septiembre de 2012 13:58
  • ¿Y no se puede hacer varias aplicaciones, una para cada resolución, que el usuario ejecute la aplicación que se llame "Aplicación Normal", y que ésta detecte automaticamente la resolución de la pantalla, y abra el programa correspondiente?

    ¿Cómo se podría hacer eso en C#?

    domingo, 9 de septiembre de 2012 15:22
  • Puestos a volver a pintar manualmente el diseño para cada resolución, más que hacer varias aplicaciones yo haría varios formularios y los metería todos en la misma aplicación. De esa forma no duplicaría el código, del que existiría una única copia, y solo quedaría duplicado el diseño de la pantalla. Para sacar una u otra resolución, bastaría con meter una serie de "if" anidados que vayan comparando la resolución actual con los valores previstos y llamen al método Show de aquel formulario que coincida con la resolución prevista. Aun así, me parece que la cantidad de trabajo duplicado hace que esta forma de construir la aplicación sea poco recomendable. Sigo pensando que es preferible hacer la pantalla una sola vez, y hacerla flexible para que ella sola se reorganice en función de la resolución disponible.

    • Marcado como respuesta RuliLG domingo, 9 de septiembre de 2012 17:27
    domingo, 9 de septiembre de 2012 17:07