Autor Tema: ¿Como lograr que mis winforms se adapten a diferentes resoluciones? (VB.NET)  (Leído 2878 veces)

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Hola! buenas noches!

Hace tiempo que no me presentaba por aquí hehe... espero que todos esten bien!!! He venido aqui con una pregunta que he hecho hace tiempo y que aun no he recibido una solución. Resulta que hice un programa en VB.NET conectado a una base de datos Access... hice el instalador, el programa se abre, se conecto con la base de datos... todo bien, todo perfecto. Pero el problema comienza cuando noto esto:



Explico... (Aunque creo que ya se noto muy claro a que voy a llegar). La imagen a tu izquierda, es el programa instalado en otra computadora de mi casa, Y la imagen de la derecha es el programa corriendo en la computadora donde lo desarrolle originalmente.
Como ven,  mi form (o ventana), en la imagen de la derecha no me esta mostrando el contenido completo del mismo... (Se puede notar en el circulo rojo en la primera imagen... apenas se ve un pedazo del boton "Ocultar Ventana", mientras que en la imagen de la derecha, se puede apreciar perfectamente... asi debería salir en todas las maquinas).

No es el unico form con este problema, casi todas las demas ventanas me estan mostrando un pedazo del contenido del mismo... he investigado pero las soluciones que me han dado, las he probado pero ninguna me ha funcionado... quizas los que me estan dando problemas son los controles de la misma ventana... he leido que tambien los controles del form se deberian reajustar junto con el form a la resolucion de la computadora. Mi pregunta seria:

¿Como lograría que mi form y sus controles se adapten a todas las resoluciones de pantallas?... Me tiene con un dolor de cabeza esto :(

(Si no me logre explicar, ruego que me lo señalen).

Muchísimas gracias de antemano!
« Última modificación: 20 de Abril 2016, 10:41 por César Krall »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2074
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola Dan! Me alegro de verte por aquí ;)

Supongo que ya habrás probado de todo pero lo único que se me ocurre decirte es que hagas más pruebas.

Probar a establecer redimensionado para todos los controles según la resolución de pantalla actual.

Código: [Seleccionar]
    Dim DesignScreenWidth As Integer = 1280
    Dim DesignScreenHeight As Integer = 1024
    Dim CurrentScreenWidth As Integer = Screen.PrimaryScreen.Bounds.Width
    Dim CurrentScreenHeight As Integer = Screen.PrimaryScreen.Bounds.Height
    Dim RatioX as Double = CurrentScreenWidth / DesignScreenWidth
    Dim RatioY as Double = CurrentScreenHeight / DesignScreenHeight
    For Each iControl In Me.Controls
        With iControl
            If (.GetType.GetProperty("Width").CanRead) Then .Width = CInt(.Width * RatioX)
            If (.GetType.GetProperty("Height").CanRead) Then .Height = CInt(.Height * RatioY)
            If (.GetType.GetProperty("Top").CanRead) Then .Top = CInt(.Top * RatioX)
            If (.GetType.GetProperty("Left").CanRead) Then .Left = CInt(.Left * RatioY)
        End With
    Next

DesignScreenWidth se referiría a el ancho de la pantalla donde hiciste el diseño original en pixeles y DesignScreenHeight lo mismo para el alto.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".