Hola. Qué tal amigos del foro?
Les comento que estoy tratando de lograr que el formulario principal de una aplicación que estoy desarrollando modifique su tamaño (propiedades Height y Width) y posición (Left y Top) de acuerdo a la resolución de pantalla que elija un usuario. Para este propósito utilizo un control SysInfo que detecta el momento en que se elige otra resolución de pantalla. No sé que estoy haciendo mal pero este código no me resulta, es decir, no cambia ni el tamaño del form ni cambia su posición en la pantalla. Este es el código que estoy empleando:
Private Sub SysInfo1_DisplayChanged()
Dim miwidth As Long
Dim miheight As Long
Text1.Text = SysInfo1.WorkAreaTop
Text2.Text = SysInfo1.WorkAreaLeft
Text3.Text = SysInfo1.WorkAreaHeight
Text4.Text = SysInfo1.WorkAreaWidth
'
'Calculamos la resolución
miwidth = Screen.Width / 15
miheight = Screen.Height / 15
'
'esto no actualiza el tamaño del form :-S
If ((miwidth = 800) And (miheight = 600)) Then
Me.Width = SysInfo1.WorkAreaWidth
Me.Height = SysInfo1.WorkAreaHeight
Me.Left = 0
Me.Top = 0
ElseIf ((miwidth > 800) And (miheight > 600)) Then
Me.Width = (Screen.Width * 0.75) 'el ancho es el 75% del ancho de la pantalla
Me.Height = (Screen.Height * 0.75) 'el largo es el 75% de la pantalla
Me.Left = (Screen.Width - Me.Width) / 2 ' Centra el form horizontalmente
Me.Top = (Screen.Height - Me.Height) / 2 'Centra el form verticalmente
ElseIf ((miwidth < 800) And (miheight < 600)) Then
MsgBox "resolución no soportada por la aplicación"
End If
End Sub
Alguien sabe qué está pasando? Hay una mejor manera de hacer lo que pretendo?
De antemano agradezco a todos su ayuda.
DiabloRojo