' MODO 2
' ESTE RESIZE PERMITE AJUSTAR POR SEPARADO EL ALTO Y ANCHO.
' NO MANTIENE LA RELACION DE ASPECTO ORIGINAL,
' DE MODO QUE LOS TEXTOS DE LOS BOTONES, CHECKBOX,
' LABELS, ETC... PUEDEN QUEDAR MAL AJUSTADOS.
Código vb:
Ver originalPrivate Sub Form_Resize()
Static AntHeight As Single
Static AntWidth As Single
Static MinimoHeight As Single
Static MinimoWidth As Single
Static EnUso As Integer
If EnUso = 1 Then Exit Sub
On Local Error Resume Next
EnUso = 1
If Me.WindowState <> vbMinimized Then
If AntWidth = 0 Then
AntWidth = Me.Width
' AÑADIENDO AQUI "* 0.8" CONSEGUIMOS QUE
' EL TAMAÑO MINIMO PERMITIDO AL RESIZAR
' SEA INFERIOR AL TAMAÑO ORIGINAL.
MinimoWidth = Me.Width * 0.8
' SIN EMBARGO ESTO OBLIGA A USAR PARA NUESTROS
' CONTROLES UNA FUENTE MAS FLEXIBLE, COMO "Arial".
' AÚN ASÍ NO HAY QUE REDUCIRLO MUY POR DEBAJO DE
' ESTE 0.8 YA QUE SI LO ENCOGES MUCHO LOS TEXTOS QUEDAN ILEGIBLES.
End If
If AntHeight = 0 Then
AntHeight = Me.Height
' LOGICAMENTE AQUI TAMBIEN HAY QUE PONER EL "* 0.8"
MinimoHeight = Me.Height * 0.8
End If
If Me.Height < MinimoHeight Then Me.Height = MinimoHeight
If Me.Width < MinimoWidth Then Me.Width = MinimoWidth
' SOLO HAY QUE CAMBIAR AQUI LOS "TRUE, FALSE" SEGUN QUIERAS
' AUTO-AJUSTAR O NO LOS TEXTOS Y SI QUIERES QUE SE AJUSTEN
' SEGUN EL ALTO O SEGUN EL ANCHO DEL FORM.
AjustaControlesForm Me, AntHeight, AntWidth, True, False
AntHeight = Me.Height
AntWidth = Me.Width
' AQUI VAN LOS CAMBIOS PERSONALIZADOS, COMO AJUSTAR
' EL ALTO DE LOS LISTBOX SI HAY ALGUNO.
'List1.Height = Me.Height - 500
End If
EnUso = 0
End Sub