' 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