01/06/2020, 08:54
Controlleri horizontal eksende ortalamak için
aynı zamanda vertikal eksende de ortalanması için nasıl bir değişiklik gerekir
Private Sub Form_Resize()
Call CenterControls
End Sub
Private Sub Form_Current()
DoCmd.Maximize
Call CenterControls
End Sub
Sub CenterControls()
'Find the control that has the farthest left position, and the one with the farthest right position.
'That will give us the total distance of our buttons. We will then have to compare that to the width of the form, and move our controls accordingly.
Dim Ctrl As Control
Dim ClosestLeft As Integer
Dim FurthestRight As Integer
Dim FurthestRightWidth As Integer
Dim GrandTotalWidth As Integer
Dim AmountToMove As Integer
Dim TypicalPosition As Integer
'Finds the furthest left position of all of our controls on the form.
For Each Ctrl In Me
If ClosestLeft > Ctrl.Left Or ClosestLeft = 0 Then
ClosestLeft = Ctrl.Left
End If
'Finds the furthest right control. Also takes the width of that furthest right control (necessary for the calculation)
If FurthestRight < Ctrl.Left Or FurthestRight = 0 Then
FurthestRight = Ctrl.Left
FurthestRightWidth = Ctrl.Width
End If
Next
'Now we find the grand total width of all of our controls. Furthest Right - Furthest Left + FurthestRightWidth
GrandTotalWidth = FurthestRight - ClosestLeft + FurthestRightWidth
'Finds the typical position of where the left side of the group of controls should sit on the form.
TypicalPosition = (Me.InsideWidth / 2) - (GrandTotalWidth / 2)
'Figures out the amount we'd have to move the group of controls to get them to sit in their typical position.
AmountToMove = TypicalPosition - ClosestLeft
For Each Ctrl In Me
If Not ClosestLeft + AmountToMove <= 0 Then
Ctrl.Left = Ctrl.Left + AmountToMove
End If
Next
End Sub
bu kodlar kullanılıyoraynı zamanda vertikal eksende de ortalanması için nasıl bir değişiklik gerekir