Алгоритм проверок условий и пропорционального изменения размеров контрола Image
Процедура в коде формы:
Private Sub Form_Resize()
Dim ImgW As Integer, ImgH As Integer
'Ограничение на уменьшение всех контролов до нуля твипов при уменьшении формы, для предотвращения ошибки программы
If Form1.Height > 1 And Form1.Width > 1 Then
'Вычисление размеров изображения (ширины и высоты) под размер изменённого окна
If Picture1.Picture.Width <= Form1.Width And Picture1.Picture.Height <= Form1.Height Then
ImgW = Picture1.Picture.Width
ImgH = Picture1.Picture.Height
End If
If Picture1.Picture.Width > Form1.Width And Picture1.Picture.Height > Form1.Height Then
ImgW = Form1.Width
ImgH = Picture1.Picture.Height / (Picture1.Picture.Width / Form1.Width)
If ImgH > Form1.Height Then
ImgH = Form1.Height
ImgW = Picture1.Picture.Width / (Picture1.Picture.Height / Form1.Height)
End If
End If
If Picture1.Picture.Width > Form1.Width And Picture1.Picture.Height <= Form1.Height Then
ImgW = Form1.Width
ImgH = Picture1.Picture.Height / (Picture1.Picture.Width / Form1.Width)
If ImgH > Form1.Height Then
ImgH = Form1.Height
ImgW = Picture1.Picture.Width / (Picture1.Picture.Height / Form1.Height)
End If
End If
If Picture1.Picture.Height > Form1.Height - 2900 Then
ImgH = Form1.Height - 2900
ImgW = Picture1.Picture.Width / (Picture1.Picture.Height / (Form1.Height - 2900))
End If
'Изменение размеров изображения (ширины и высоты) под размер изменённого окна
Image1.Width = ImgW
Image1.Height = ImgH
End If