FM20 – MultiPage
MultiPage to kontrolka ActiveX z zestawu biblioteki FM20 (standardowy przybornik) dla kompilacji Office 32/64 bit.
Podstawowa kontrolka do prezentowania danych w obrębie swoich zakładek. Głownie przydatna do stałego zakresu danych, które kierują się swoim przebiegiem a nie mieszczą się lub wprowadziłyby zamieszanie w przypadku umieszczenia ich wszystkich w jednej formie.

Kontrolka posiada 2 zestawy ustawień. Pierwsza to sama kontrolka (jej właściwości takie jak Style, ustawienie czcionek, kolor itd) oraz każdej utworzonej karty (jak np zmiana jej nazwy Caption, skrolowanie obszaru konkretnej katy, jej skrót Accelerator, Indeks którego zmiana ma wpływ na kolejność wywołania, wyrównanie). Oto te różnice: kliknięcie w obrębie kontrolki a klikniecie w obrębie nazwy karty:

Domyślnie kontrolka zawiera 2-ie karty, ale pod prawym klawiszem, klikając na kartę mamy menu dodawania i kasowania kart. Każda kata, dzięki wykorzystaniom innych kontrolek zestawy FM20, może posiadać własny niepowtarzany wygląd. Np tworząc kartotekę osobową, dzięki której można uzupełniać dane bazy pracowniczej:

Co należy wiedzieć podczas programowania kontrolki, to umieszczenie obiektów na kartach nie wpływa na odniesienie się do nich (tak jakby były umieszczone bezpośrednio na formie). Dobrą praktyką jest w każdej procedurze inicjującej formę wymusić ustawienie zawsze pierwszej zakładki jako aktywnej, ponieważ zapis projektu z edycją zakładek zapisze ja jako aktywną. Oto obydwa przykłady:
Private Sub UserForm_Initialize()
MultiPage1.Value = 0 'ustawienie pierwszej zakładki jako aktywnej
TextBox1.Text = "Przykładowe_Imie" 'odwołanie się do obiektu umieszczonego w zakładce
End Sub
Jednym ustawieniem jaki może was zainteresować to ustawienie przycisków (zamiast zakładek) oraz położenie poziome z możliwością zawijania (akceptacja entera w nazwie karty):

Inną inspiracją może też być całkowite ukrycie kart kontrolki i sterowanie nimi utworzonymi w formie przyciskami. Przyciski nie muszą być osadzone na kartach ponieważ przejście do następnej karty do zwiększenie wartości Value kontrolki Multipage.

Oto kod jaki steruje kontrolką:
Private Sub UserForm_Initialize()
MultiPage1.Value = 0
CommandButton1.Enabled = False 'jeśli zapamiętamy kontrolkę na pierwszej karcie musimy wyłączyć przycisk
End Sub
Private Sub MultiPage1_Change()
Select Case MultiPage1.Value
Case 0
CommandButton1.Enabled = False 'jeśli pierwsza karta to wyłącz przechodzenie w lewo
CommandButton2.Enabled = True
Case MultiPage1.Pages.Count - 1 'jak kolekcja czyli liczymy od zera
CommandButton1.Enabled = True
CommandButton2.Enabled = False 'Jeśli ostatnia karta wyłącz przechodzenie w prawo
Case Else
CommandButton1.Enabled = True
CommandButton2.Enabled = True
End Select
End Sub
Private Sub CommandButton1_Click()
MultiPage1.Value = MultiPage1.Value - 1 'wartość kontrolki minus jeden
End Sub
Private Sub CommandButton2_Click()
MultiPage1.Value = MultiPage1.Value + 1 'wartość kontrolki plus jeden
End Sub
Tyle możliwości kontrolki Multipage.
Jeśli uważasz że pokazane materiały są godne polecenia – podziel się tą wiadomością z innymi pozostawiając odnośnik to tego materiału.
(c) Shon Oskar – http://VBATools.pl
Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.