Uporaba kontrolnikov postavitve na obrazcih UserForm
Uporabniškemu obrazcu (UserForm) v Excelu ali Wordu dajte seznam za krmarjenje, glavno območje in
trak s podrobnostmi, ki sledijo velikosti obrazca in jim uporabnik lahko spreminja velikost – brez
kode v UserForm_Resize.
Zahteva WKL Forms Object Library 1.23 ali novejšo različico.
Pregled rešitve
WklDockLayout in WklSplitter delujeta na uporabniških obrazcih (MSForms) enako kot na
Accessovih obrazcih. Postavitev s pripenjanjem sama spremlja okno uporabniškega obrazca, ker MSForms nobenemu
kontrolniku ne spreminja velikosti skupaj z obrazcem; razdelilnik ob vstopu miške MSForms prosi,
naj ga aktivira, tako da že prvi pritisk vleče. Velikosti so v obeh gostiteljih v twipih
(1 točka = 20 twipov); razporeditev se zapomni v registru trenutnega uporabnika.
Izvedba
V urejevalniku Visual Basic izberite Tools › Additional Controls,
označite WKL Dock Layout (in po potrebi WKL Splitter); oba se prikažeta v
orodjarni. Narišite območja – na primer ListBox1 ob levem robu, ListBox3 ob spodnjem robu,
ListBox2 v preostanku –, nato čeznje narišite postavitev s pripenjanjem, jo poimenujte Layout1 in
izberite Format › Order › Send to Back.
Drugega ni treba: s FillSection (privzeto) postavitev zavzame notranjost uporabniškega obrazca,
po položaju najde tri polja s seznamom in sledi vsaki velikosti obrazca – tudi kadar koda nastavi
Width in Height obrazca, kot spodaj. Koda dela neposredno s kontrolnikom, brez .Object:
Private Sub UserForm_Initialize()
Me.Width = 600 ' points
Me.Height = 400
Me.Layout1.LayoutKey = "Narocila.Layout1" ' the same form name in another document stays apart
End Sub
Private Sub cmdDefault_Click()
Me.Layout1.Reset
End Sub
Opombe
- Z izklopljenim
FillSectionpostavitev ohrani razdaljo do desnega in spodnjega roba uporabniškega obrazca, ki jo je imela, ko je bil obrazec prvič prikazan. - MSForms kontrolnike postavlja na cele slikovne pike, zato se rob lahko od izračunane vrednosti v točkah razlikuje za največ 0,75 točke.
- Razporeditev se zapiše v
HKEY_CURRENT_USER\Software\The White Knight Labs\Access Framework\Layouts, ena vrednost za vsakLayoutKey; privzeti ključ je „ime uporabniškega obrazca.ime kontrolnika“. - Excel lahko ob odpiranju delovnega zvezka vpraša, ali naj omogoči kontrolnike ActiveX uporabniškega obrazca.
- Po posodobitvi WKL Forms Object Library se član, ki je nov v tej različici, na uporabniškem obrazcu dokumenta, uporabljenega že prej, morda ne prevede; glejte „Method or data member not found“ za kontrolnik na obrazcu UserForm.
- F6 med območji deluje samo na Accessovih obrazcih. Tipkovnica vrstice in trakov (Tab, puščične tipke, Enter) in njihov UI Automation sta podprta na Accessovih obrazcih; na uporabniških obrazcih nista podprta.