Discussione: Corso VBA
Visualizza messaggio singolo
Vecchio 24-06-2014, 15.20.24   #43
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.208
Alexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raro
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
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato