Пропорциональное изменение размеров внутри формы - VB

Узнай цену своей работы

Формулировка задачи:

Как изменять размеры,положение компонентов внутри главной формы в зависемости от её размеров

Решение задачи: «Пропорциональное изменение размеров внутри формы»

textual
Листинг программы
Dim SW_old As Double, SH_old As Double 'начальная ширина и высота окна
 
Dim CtrSize() As Long ' массив для хранения начальных размеров и положения контролов
 
Const cLeft = 1
Const cTop = 2
Const cWidth = 3
Const cHeight = 4
 
Private Sub Form_Load()
  Dim i As Long
  Dim ctr As Control
  
  SW_old = Me.ScaleWidth
  SH_old = Me.ScaleHeight
  For Each ctr In Me.Controls
    ReDim Preserve CtrSize(1 To 4, 0 To i)
    CtrSize(cLeft, i) = ctr.Left
    CtrSize(cTop, i) = ctr.Top
    CtrSize(cWidth, i) = ctr.Width
    CtrSize(cHeight, i) = ctr.Height
    i = i + 1
  Next
End Sub
 
Private Sub Form_Resize()
  Dim kW As Double, kH As Double
  Dim i As Long
  Dim ctr As Control
  On Error Resume Next ' некоторые контролы не позволяют изменять свои размеры 
  
  If Me.WindowState <> vbMinimized Then
    kW = Me.ScaleWidth / SW_old
    kH = Me.ScaleHeight / SH_old
    For Each ctr In Me.Controls
      ctr.Left = CtrSize(cLeft, i) * kW
      ctr.Top = CtrSize(cTop, i) * kH
      ctr.Width = CtrSize(cWidth, i) * kW
      ctr.Height = CtrSize(cHeight, i) * kH
      i = i + 1
    Next
  End If
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы