FM20 – Frame
Frame to kontrolka ActiveX z zestawu biblioteki FM20 (standardowy przybornik) dla kompilacji Office 32/64 bit.
Ramka taka może ona pełnić 2 funkcję, dekoracyjną lub grupującą.
Ta pierwsza wspaniale spełnia się w roli odznaczenia pewnego obszaru w formie, od innych obszarów spełniających odrębną funkcję (np teksty wpisywane przez użytkownika, od ustawień parametrów interfejsu). Druga zaś funkcja, przy użyciu kontrolek typu OptionButtontworzy automatycznie grupę która daje możliwość niezależnej współpracy wew tej grupy:
Jak widać w pow przykładzie żadna z kontrolek wew grupy nie została zaznaczona Value = True, a uruchomienie formy dało możliwość wyboru jednej z nich w każdej z grup.
Zagadnieniem dość przydatnym jest wyłączanie pewnych grup z użycia. Np spełnienie pewnego warunku udostępnia odblokowanie elementów w grupie a inne ma to uniemożliwić. Pokazuje to na poniższym przykładzie:
Jak można zauważyć kod wpisany w Checkboxa przekazuje negację parametru Value do odblokowania ramki Frame, co widać po zmianie koloru ramki.
Private Sub CheckBox1_Click()
Frame1.Enabled = Not CheckBox1.Value 'zaprzeczenie wartości przekazane jako parametr odblokowania
End Sub
Niestety w VBA w przeciwieństwie do rozwiązań w bardziej zaawansowanym VB.NET elementy w grupie nie zaznaczają się jako nieaktywne, choć przejmują tą właściwość co uniemożliwia zaznaczenie tych opcji lub ich zmianę. Niemniej jednak to iż ich wygląd się nie zmienia trochę przeszkadza w pracy z takim interfejsem. W tym przypadku dobrze jest sprawdzić, które z kontrolek znajdują się wew tej ramki aby im również przekazać parametr Enabled = False.
Jak przerobić wszystkie elementy w grupie pokazuje na poniższym przykładzie:
Oto kod, który steruje takim ustawieniem wew grupy
Private Sub CheckBox1_Click()
Frame1.Enabled = Not CheckBox1.Value
Dim kontrolki As msforms.Control 'deklaracja zmiennej nieokreślonej
For Each kontrolki In Me.Frame1.Controls 'pętla po kontrolkach z grupie Frame1
kontrolki.Enabled = Not kontrolki.Enabled
Next
End Sub
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.