VBATools

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.

Obrazek

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:

Obrazek

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:

Obrazek

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):

Obrazek

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.

Obrazek

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.