I Controlli Frame, Multipage e TabStrip
I frame (cornici) vengono utilizzati per i controlli di gruppo che lavorano insieme e sono correlati tra loro o hanno qualche comunanza, in una Form, inoltre per raggruppare e organizzare una serie di elementi correlati, migliorano anche il layout della Form. Ad esempio, in un modulo che contenga le caratteristiche fisiche come l'altezza, peso e colore dei capelli possono essere raggruppati in un particolare frame. I Frame sono particolarmente utili per raggruppare due o più OptionButtons e vengono utilizzati per due finalità:
- Per raggruppare e organizzare in una Form i controlli e migliorare visivamente il layout
- Per impostare il comportamento di un gruppo di OptionButtons, che si escludono a vicenda all'interno di un frame e selezionando un OptionButton saranno deselezionate tutte le altre OptionButtons all'interno del Frame.
Esempio: Determinare il nome e la Caption di tutte le OptionButtons in un Frame
Codice:
Private Sub CommandButton1_Click()
Dim ctrl As Control
For Each ctrl In Frame1.Controls
If TypeOf ctrl Is MSForms.OptionButton Then
If ctrl.Enabled = True Then
MsgBox ctrl.Name & " è abilitato con Caption " & ctrl.Caption
End If
End If
Next
End Sub
Il controllo MultiPage
Un controllo
multipage si compone di uno o più oggetti pagina, ciascuna contenente un proprio set di controlli e viene utilizzato al meglio quando si desidera gestire una grande quantità di dati che possono essere classificati in diverse categorie, in cui è possibile creare una pagina separata per ogni categoria. Tutti i controlli che vengono aggiunti a una pagina di un controllo multipage, sono contenuti diventano una parte di quella pagina che distingue i controlli da quelli che sono in altre parti della Form. Un controllo multipagina ha diverse pagine e la selezione di una pagina la rende quella corrente (rendendola visibile), nascondendo le altre e ogni pagina di un controllo multipage ha un proprio ordine di tabulazione. Le pagine sono numerate da 0, e per selezionare la prima pagina in un controllo multipagina, si utilizza il codice:
MultiPage1.Value = 0 e per impostazione predefinita, un controllo multipage ha 2 Pagine e per aggiungere delle pagine, si deve fare clic col destro del mouse sulla scheda e selezionare dal menu che appare la voce
Nuova pagina
Aggiungi o Rimuovi pagina
Per aggiungere una pagina con codice VBA si utilizzo il
Metodo Add che presenta questa sintassi:
Set m = MultiPage1.Pages.Add (pageName, pageCaption, pageIndex), dove:
- pageIndex (opzionale) è un intero che specifica la posizione della pagina da inserire, a partire da 0 per la prima posizione
- pageName imposta il nome per la pagina
- pageCaption imposta la Caption ed entrambe sono opzionali.
Alcuni esempi di inserimento di nuove pagine:
Set m = MultiPage1.Pages.Add ("Page5", "NewPage", 1)
Questo codice aggiunge una nuova pagina con il nome
Pagina5 e Caption
Nuova Pagina, come seconda pagina, cioè nella seconda posizione nell'ordine di tabulazione.
MultiPage1.Pages.Add "Pagina3"
MultiPage1.Pages (2). Caption = "Nuova"
Questi 2 codici aggiungono una nuova pagina (la terza) con il nome
Pagina3 e imposta la Caption
Nuova
MultiPage1.Pages.Add: Questo codice aggiunge semplicemente una nuova pagina.
Per rimuovere una pagina si usa ilseguente metodo che presenta la sintassi:
MultiPage1.Pages.Remove (pageIndex) .
Esempio: MultiPage1.Pages.Remove (1) :Questo codice rimuove la seconda pagina.
Individuare e Accedere a una pagina
Per modificare o impostare le proprietà di una pagina in fase di esecuzione, abbiamo bisogno di identificare quella pagina nel controllo multipage, che può essere fatto in diversi modi. Per accedere a una singola pagina in un controllo multipagina, possono essere usati i seguenti metodi
- Numeric Index : Con Index (indice) 0 ci si riferisce alla prima pagina, l’indice 1 alla seconda pagina e così via. Il codice per impostare la Caption è : MultiPage1.Pages (Index).Caption
- Metodo Item: L’indice (Item) 0 si riferisce alla prima pagina, l’indice 1 alla seconda pagina e così via. Il codice per impostare la Caption è : MultiPage1.Pages.Item (ItemIndex).Caption
- Page Name: Per impostare la Caption usando il nome pagina si usa il seguente codice: MultiPage1.Pages ("Nuova Pagina"). Caption oppure MultiPage1.Pages.Item ("Nuova pagina"). Caption
- Page Object : Il codice per impostare la Caption è MultiPage1.PageName.Caption
- Proprietà SelectedItem : Il codice per impostare la Caption è MultiPage1.SelectedItem.Caption
Esempio: Modificare le proprietà di ogni pagina di un controllo multipage, utilizzando diversi metodi di selezione pagina.
Fig. 1 Fig. 2
Codice:
Private Sub UserForm_Activate()
MultiPage1.Pages(0).Caption = "Elisa"
MultiPage1.Pages.Item(1).Caption = "Daniele"
MultiPage1.Pages("Page3").Caption = "Mario"
MultiPage1.Page4.Caption = "Alice"
MultiPage1.Value = 4
MultiPage1.SelectedItem.Caption = "Genny"
End Sub
Il Controllo TabStrip
Un controllo TabStrip viene utilizzato per visualizzare contenuti diversi in ogni scheda per la stessa serie di controlli. Un TabStrip è una raccolta di schede in cui ogni scheda contiene una serie di controlli. Per impostazione predefinita, un controllo TabStrip ha 2 Tabs, per aggiungere delle schede, si deve fare clic col destro del mouse sulla scheda e selezionare Nuova Pagina (selezionare Elimina pagina per eliminare un Tab).
Aggiungi o rimuovi una scheda
Per aggiungere una scheda si utilizzoa il
Metodo Add che ha questa sintassi:
Set t = TabStrip1.Tabs.Add (tabname, tabCaption, tabIndex) dove
tabIndex (opzionale) è un numero intero che specifica la posizione della linguetta da inserire, si inizia da 0 per la prima posizione, mentre
tabname imposta il nome per la scheda e
tabCaption imposta la Caption, entrambi sono opzionali
Set t = TabStrip1.Tabs.Add ("TAB4", "newtab", 1) Questo codice aggiunge una nuova scheda con il nome
TAB4 e Caption
newtab, come seconda scheda (cioè seconda posizione nell'ordine di tabulazione).
TabStrip1.Tabs.Add "Tab3"
TabStrip1.Tabs (2) Caption = "Prova": Questi 2 codici aggiungono una nuova (terza) scheda denominata
Tab3 e impostano la Caption a
Prova
Per rimuovere una scheda si usa la sintassi:
TabStrip1.Tabs.Remove (tabCaption) . Esempio:
TabStrip1.Tabs.Remove ("Prova"), questo codice rimuove la scheda con Caption
Prova
Differenza tra un controllo Multipage e TabStrip
Un controllo multipage è un contenitore per i controlli, simile a un frame e ogni pagina ha un insieme separato di controlli e selezionando una pagina si nascondono le altre pagine del controllo, mentre un controllo TabStrip contiene un insieme coerente di controlli in tutte le schede e il contenuto dei controlli cambia quando è selezionata una scheda diversa ma la visibilità o disposizione dei comandi rimangono stesso.
Selezione di una scheda
Per modificare o impostare le proprietà di una scheda a run-time, si deve identificare il
Tab nel controllo
TabStrip, che può essere fatto in diversi modi, si può usare la proprietà
SelectedItem del controllo TabStrip che indica che è selezionata la scheda
Tab. Si ricorda che per selezionare una scheda si deve impostare la proprietà
Value del controllo TabStrip. I valori partono da 0, e la prima scheda in un controllo TabStrip avrà un valore 0, il valore della seconda sarà 1, e così via. Per accedere a una singola scheda in un controllo TabStrip, si possono usare i seguenti metodi
- Numeric Index (Indice numerico): Con indice 0 si riferisce alla prima pagina, con indice 1 alla seconda e così via. Il codice per impostare la Caption è : TabStrip1.Tabs (Index).Caption
- Metodo Item (utilizzando l'insieme Tabs): Con Indice 0 si riferisce alla prima pagina, con indice 1 alla seconda pagina e così via.Il codice per impostare la Caption è : TabStrip1.Tabs.Item (ItemIndex).Caption
- Tab Name : Il codice per impostarela Caption è: TabStrip1.Tabs ("tabname").Caption o ppure TabStrip1.Tabs.Item ("TabName"). Caption
- Tab Object : Il codice per impostare la Caption è: TabStrip1.TabName.Caption
- Proprietà SelectedItem : Il codice per impostare la Caption è : TabStrip1.SelectedItem.Caption
Esempio: Cambiare impostare e proprietà di ogni scheda di un controllo TabStrip, utilizzando diversi metodi di selezione delle tabulazioni.
Fig. 3
Codice:
Private Sub UserForm_Initialize()
TabStrip1.Tabs(0).Caption = "Veneto"
TabStrip1.Tabs.Item(1).Caption = "Sicilia"
TabStrip1.Tabs("Tab3").Caption = "Lazio"
TabStrip1.Tab4.Caption = "Liguria"
TabStrip1.Value = 4
TabStrip1.SelectedItem.Caption = "puglia"
End Sub
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 0 To TabStrip1.Tabs.Count - 1
MsgBox TabStrip1.Tabs(i).Name & " Ha come Caption " & TabStrip1.Tabs(i).Caption
Next i
End Sub