Layout auf einer Navigationsseite verwenden
Geben Sie einer Seite einer Navigationsshell eigene Bereiche – eine Struktur neben einer Liste, einen Detailstreifen
darunter – mit einem zweiten WklDockLayout auf dem Seitenformular, während das Layout der Shell die Leiste und das
Seitenunterformular darum herum anordnet.
Voraussetzungen: WKL Forms Object Library 1.24 oder höher.
Lösungsüberblick
Jedes Formular erhält sein eigenes Layout: Das WklDockLayout der Shell ordnet die WklNavBar und das
Seitenunterformular an, und das WklDockLayout des Seitenformulars (mit FillSection, dem Standardwert) ordnet die
Bereiche der Seite innerhalb des Unterformulars an. Keines der beiden Layouts braucht Code für das andere:
- Das innere Layout füllt das Unterformular. Ein Formular in einem Unterformularsteuerelement hat dessen Größe als Fenster, sodass
FillSectionden sichtbaren Detailbereich der Seite füllt. Verbreitert das Layout der Shell die Seite (die Leiste ist auf die Symbolspalte umgeschaltet, ein Streifen wurde gezogen), folgt das innere Layout. - Das Austauschen der Seite lässt die Shell unberührt. Das Setzen von
SourceObjectdes Unterformulars inNavigateersetzt die Seite samt ihrem Layout. Die Anordnung der Shell bleibt, wie sie war, und eine erneut angezeigte Seite wird aus ihrem Entwurf und ihrem gespeicherten Zustand neu angeordnet. - F6 durchläuft beide Ebenen. F6 und Umschalt+F6 wechseln durch die Bereiche der Shell. Am Seitenunterformular setzen sie sich durch die Bereiche der Seite fort und kehren dann zum nächsten Bereich der Shell zurück – ein einziger Durchlauf, gleich welches Layout zuerst erstellt wurde.
- Die Tastenkombination der Leiste wirkt auf der Seite.
ToggleShortcut(Strg+B) wirkt auch, wenn der Fokus in einem Bereich des inneren Layouts liegt; der Fokus bleibt, wo er war.
Umsetzung
Shell-Formular frmShell: ein WklDockLayout mit der Leiste navMain links und dem Seitenunterformular sfPage als
Füllbereich. Seitenformular frmBestellungenSeite: ein WklDockLayout mit einer WklTreeList links, dem
Bestellunterformular als Füllbereich und einem Detailunterformular unten. Beide Layouts finden ihre Bereiche über
deren Position; außer der Navigation ist kein Code nötig:
Private Sub navMain_Navigate(ByVal Key As String)
Select Case Key
Case "bestellungen": Me!sfPage.SourceObject = "Form.frmBestellungenSeite"
Case "kunden": Me!sfPage.SourceObject = "Form.frmKundenSeite"
End Select
End Sub
Geben Sie dem Layout der Seite einen eigenen Schlüssel, wenn dasselbe Seitenformular in mehr als einer Shell angezeigt wird, damit sich jede Stelle ihre eigene Anordnung merkt:
Private Sub Form_Open(Cancel As Integer)
' Page form, before its layout first arranges: the arrangement of this page in the orders shell.
Me!Layout1.Object.LayoutKey = "frmBestellungenSeite.shell"
End Sub
Hinweise
- Mit Dokumenten im Registerkartenformat und mit überlappenden Fenstern, als ACCDB, als ACCDE und in der Access Runtime gilt: Das innere Layout füllt den sichtbaren Detailbereich des Seitenunterformulars (ausgenommen den Datensatzmarkierer des Seitenformulars) und folgt, wenn die Leiste auf die Symbolspalte umschaltet. Eine Seite mit einem
WklSplitteran ihrer Stelle und wieder zurück lässt die Anordnung der Shell unverändert und das innere Layout wie zuvor. F6 und Umschalt+F6 bilden einen Durchlauf über die Leiste, den unteren Bereich der Shell und die inneren Bereiche, auch nachdem das Layout der Shell neu aufgebaut wurde. Strg+B wirkt mit dem Fokus in einem inneren Bereich und neben einer inneren Trennleiste. - Verankern Sie die eigenen Steuerelemente des Seitenformulars wie gewohnt. Das innere Layout ordnet nur seine Bereiche an; eine Kopfzeile mit Titel und Befehlen bleibt im Formularkopf des Seitenformulars.
- Für F6 allein braucht die Seite kein Layout. Ohne inneres Layout setzt F6 am Seitenunterformular den Fokus in die Seite, und das nächste F6 wechselt zum nächsten Bereich der Shell.
Verwandte Themen
- Anordnung des Benutzers beibehalten –
LayoutKey