Skip to main content

AccessTr.neT


Controller Horizontal ve Vertikal Eksende Ortalansın

Controller Horizontal ve Vertikal Eksende Ortalansın

Çözüldü #1
Controlleri horizontal eksende ortalamak için
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ıyor
aynı zamanda vertikal eksende de ortalanması için nasıl bir değişiklik gerekir
@benbendedeilem
Son Düzenleme: 01/06/2020, 08:55, Düzenleyen: accessman.
Cevapla
#2
left yerine Top
width yerine height kullanmayı deneyin
Cevapla
#3
Teşekkürler sn. @berduş
@benbendedeilem
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da