Gefügige Steuerelemente (Access 97, 2000)
Veröffentlicht am 30.12.2003
Die Größe von Steuerelementen oder deren Position wird nicht automatisch angepaßt.
Obwohl sich Formularfenster nahezu beliebig in der Größe ändern lassen, hat dies in der Regel wenige Auswirkungen auf den Inhalt der Formulare. Die Größe der Steuerelemente oder deren Position wird nämlich nicht automatisch angepasst.
Dank der BeiGrössenänderung-Eigenschaft können Sie eine Ereignisprozedur entwickeln, die alle Steuerelemente an die aktuelle Formulargröße anpasst. Der vorhandene Platz kann so optimal ausgenutzt werden.
Das Grössenänderung-Ereignis (engl. Resize) wird von Access beim Öffnen des Formulars und bei jeder Größenänderung ausgelöst. Mit einer entsprechenden Ereignisprozedur können Sie also die Position (Left- und Top-Eigenschaften) und die Größe (Width- und Height-Eigenschaften) der einzelnen Steuerelemente anpassen.
Zusätzlich benötigen Sie noch Informationen über die aktuelle Größe des Formulars. Diese ermitteln die beiden Eigenschaften InsideHeight und InsideWidth, die jedes Formular zur Verfügung stellt.
Die folgende Ereignisprozedur bezieht sich auf ein Formular, das lediglich ein einzelnes Listenfeld mit dem Namen lstLieferanten einhält. Die Größe dieses Listenfeldes wird an die aktuelle Formulargröße angepasst, wobei an allen Seiten ein Rand von 100 Tipps reserviert wird:
Private Sub Form_Resize()
Const Rand = 100
With Me!lstLieferanten
If .Top <> Rand Then .Top = Rand
If .Left <> Rand Then .Left = Rand
.Height = Max(Me.InsideHeight - Rand * 2, 0)
.Width = Max(Me.InsideWidth - Rand * 2, 0)
End With
End Sub
Innerhalb der Ereignisprozedur kommt eine Funktion namens Max zum Einsatz, die immer den maximalen zweier Werte zurückgibt. Die Funktion verhindert in der obigen Prozedur, dass die Breite oder Höhe des Steuerelements bei sehr kleinen Formularausmaßen negative Werte annimmt.
Private Function Max(a, b) As Long
Max = IIf(a > b, a, b)
End Function
