Copyright: Copyright (c) 1996 Microsoft Corporation
Citation: Copyright (c) 1996 Microsoft Corporation


Controllo CheckBox (casella di controllo)

Visualizza lo stato di selezione di un elemento.

Osservazioni

Utilizzare un controllo CheckBox per consentire all'utente di eseguire una scelta tra due valori opposti, ovvero impostazioni quali Yes/No, True/False o On/Off. Se l'utente seleziona un controllo CheckBox, viene visualizzato un segno speciale, ad esempio una X, e l'impostazione corrente è Yes, True o On. In caso contrario, il controllo appare vuoto e viene visualizzata l'impostazione No, False o Off. È possibile che il controllo CheckBox abbia valore nullo, a seconda del valore della proprietà TripleState.

Se il controllo CheckBox è associato a una fonte dati, la modifica dell'impostazione del controllo modificherà il valore della fonte dati. In un controlloCheckBox disattivato viene visualizzato il valore corrente ma il controllo è a luminosità ridotta e il valore non può essere modificato dall'interfaccia utente.

Le caselle di controllo contenute in una casella di gruppo consentono di selezionare uno o più elementi correlati. È possibile, ad esempio, creare un modulo d'ordine contenente l'elenco degli articoli disponibili, ciascuno preceduto da un controllo CheckBox. L'utente potrà selezionare uno o più articoli desiderati selezionando il controllo CheckBox corrispondente.

La proprietà predefinita di un controllo CheckBox è Value.

L'evento predefinito di un controllo CheckBox è Click.

Nota  Anche il controllo ListBox consente di visualizzare un segno di spunta accanto alle opzioni selezionate. A seconda dell'applicazione, è possibile utilizzare il controllo ListBox anziché un gruppo di controlli CheckBox.


Controllo ComboBox (casella combinata)

Associa le caratteristiche dei controlli ListBox e TextBox. L'utente può immettere un nuovo valore, come in un controllo TextBox, o selezionare un valore esistente, come in un controllo ListBox.

Osservazioni

Se il controllo ComboBox è associato a una fonte dati, il controllo inserisce nella fonte dati corrispondente il valore immesso o selezionato dall’utente. Se è associata una casella combinata a più colonne, il valore memorizzato nella fonte dati associata è determinato dalla proprietà BoundColumn.

L'elenco di un controllo ComboBox è costituito da due righe di dati. Ciascuna riga può contenere una o più colonne con o senza intestazione. Le intestazioni di colonna non sono supportate in alcune applicazioni e in altre lo sono solo in modo limitato.

La proprietà predefinita di un controllo ComboBox è Value.

L'evento predefinito di un controllo ComboBox è Change.

Nota  Per visualizzare più righe dell'elenco, è possibile utilizzare il controllo ListBox anziché ComboBox. Se si desidera utilizzare un controllo ComboBox e rendere disponibili soltanto i valori dell'elenco, impostare la proprietà Style del controllo ComboBox in modo che venga visualizzato sotto forma di casella di riepilogo a discesa.


Controllo CommandButton (pulsante di comando)

Avvia, termina o interrompe un'azione o una serie di azioni.

Osservazioni

La macro o la routine di eventi assegnata all'evento Click del controllo CommandButton determina l'azione eseguita dal controllo. È possibile, ad esempio, creare un controllo CommandButton per l'apertura di un altro form. In un controllo CommandButton, si possono inoltre visualizzare testo, immagini o entrambi.

La proprietà predefinita di un controllo CommandButton è Value.

L'evento predefinito di un controllo CommandButton è Click.


Controllo Frame (cornice)

Crea un gruppo di controlli funzionale e visivo.

Osservazioni

Poiché tutti i pulsanti di opzione di un controllo Frame si escludono reciprocamente, è possibile utilizzare il controllo Frame per creare un gruppo di opzioni. Il controllo Frame può essere inoltre utilizzato per raggruppare controlli correlati. In un'applicazione per l'elaborazione degli ordini dei clienti, ad esempio, un controllo Frame consente di raggruppare il nome, l'indirizzo e il numero di codice dei clienti.

È inoltre possibile utilizzare un controllo Frame per creare un gruppo di interruttori. Gli interruttori tuttavia, non si escludono reciprocamente.

L'evento predefinito di un controllo Frame è Click.


Controllo Image (immagine)

Visualizza un'immagine in un form.

Osservazioni

Il controllo Image consente di visualizzare un'immagine come parte dei dati di un form. È possibile, ad esempio, utilizzare un controllo Image per visualizzare le fotografie dei dipendenti in un form del personale.

Il controllo Image consente di ritagliare, ridimensionare o ingrandire un'immagine ma non consente di modificarne il contenuto. Non è possibile, ad esempio, utilizzare il controllo Image per modificare i colori, rendere trasparente o ridefinire il contenuto dell'immagine. A tale scopo, sarà necessario utilizzare un software di modifica delle immagini.

Il controllo Image supporta i seguenti formati di file:

•	*.bmp

•	*.cur

•	*.gif

•	*.ico

•	*.jpg

•	*.wmf

Nota  È possibile visualizzare un'immagine anche in un controllo Label. Il controllo Label, tuttavia, non consente di ritagliare, ridimensionare o ingrandire l'immagine.

L'evento predefinito di un controllo Image è Click.


Controllo ListBox (casella di riepilogo)

Visualizza un elenco di valori e consente di selezionare uno o più valori.

Osservazioni

Se il controllo ListBox è associato a una fonte dati, il controllo memorizza il valore selezionato nella fonte dati corrispondente.

È possibile visualizzare il controllo ListBox come elenco o gruppo di controlli OptionButton o CheckBox.

La proprietà predefinita di un controllo ListBox è Value.

L'evento predefinito di un controllo ListBox è Click.

Nota   Non è possibile trascinare del testo in un controllo ListBox a discesa.


Controllo MultiPage (pagine)

Raggruppa schermate multiple di informazioni.

Osservazioni

Il controllo MultiPage risulta particolarmente utile quando viene utilizzata una grande quantità di informazioni che è possibile suddividere in categorie. È possibile, ad esempio, utilizzare un controllo MultiPage per visualizzare le informazioni di un'applicazione per la gestione dei dipendenti. Sarà possibile includere in una pagina le informazioni personali, quali il nome e l'indirizzo, in un'altra pagina l'elenco dei precedenti datori di lavoro e in una terza pagina l'elenco delle referenze. Il controllo MultiPage consente di associare visivamente le informazioni correlate mantenendo accessibile l'intero record.

Le nuove pagine vengono aggiunte a destra della pagina corrente, non adiacenti ad essa.

Nota  Il controllo MultiPage è un contenitore di un insieme Pages contenente uno o più oggetti Page.

La proprietà predefinita di un controllo MultiPage è Value che restituisce l'indice dell’oggetto Page attivo nell'insieme Pages del controllo MultiPage.

L'evento predefinito di un controllo MultiPage è Change.


Controllo OptionButton (pulsante di opzione)

Indica lo stato di selezione di un elemento in un gruppo.

Osservazioni

Utilizzare un controllo OptionButton per indicare la selezione di un singolo elemento in un gruppo. Si noti che i controlli OptionButton di un controllo Frame si escludono reciprocamente.

Se il controllo OptionButton è associato a una fonte dati, viene visualizzato il valore della fonte dati Yes/No, True/False o On/Off. Se l'utente seleziona il controllo OptionButton, l'impostazione corrente sarà Yes, True o On. In caso contrario, l'impostazione sarà No, False o Off. È possibile, ad esempio, utilizzare un controllo OptionButton in un'applicazione per la gestione dell'inventario per indicare un articolo non disponibile. Se il controllo OptionButton è associato a una fonte dati, la modifica delle impostazioni modificherà il valore della fonte dati corrispondente. Un controllo OptionButton disattivato è a luminosità ridotta e non visualizza alcun valore.

È possibile che il controllo OptionButton abbia valore nullo, a seconda del valore della proprietà TripleState.

Un controllo OptionButton può essere utilizzato all'interno di una casella di gruppo per selezionare uno o più elementi correlati di un gruppo. È possibile, ad esempio, creare un modulo d'ordine contenente un elenco degli articoli disponibili, ciascuno preceduto da un controllo OptionButton. L'utente può selezionare un determinato articolo attivando il controllo OptionButton corrispondente.

La proprietà predefinita di un controllo OptionButton è Value.

L'evento predefinito di un controllo OptionButton è Click.


Controllo ScrollBar (barra di scorrimento)

Restituisce o imposta il valore di un altro controllo in base alla posizione della casella di scorrimento.

Osservazioni

Il controllo ScrollBar è un controllo autonomo che può essere inserito in un form. Il controllo è simile alla barra di scorrimento contenuta in alcuni oggetti, quali il controllo ListBox o l'elenco a discesa del controllo ComboBox. A differenza delle barre di scorrimento di tali oggetti, il controllo autonomo ScrollBar non è parte integrante di alcun controllo.

Per utilizzare il controllo ScrollBar per impostare o leggere il valore di un altro controllo, è necessario scrivere del codice per gli eventi e i metodi di ScrollBar. Per utilizzare, ad esempio, il controllo ScrollBar per aggiornare il valore di un controllo TextBox, è possibile scrivere del codice che legga la proprietà Value di ScrollBar e quindi imposti la proprietà Value di TextBox.

La proprietà predefinita di un controllo ScrollBar è Value.

L'evento predefinito di un controllo ScrollBar è Change.

Nota  Per creare un controllo ScrollBar orizzontale o verticale, trascinare i quadratini di ridimensionamento di ScrollBar in senso orizzontale o verticale sul form.


Controllo SpinButton (pulsante di selezione)

Incrementa e decrementa valori numerici.

Osservazioni

Facendo clic sul controllo SpinButton è possibile modificare soltanto il valore del controllo. Il controllo SpinButton può essere utilizzato nel codice per aggiornare il valore visualizzato in un altro controllo. È possibile, ad esempio, utilizzare un controllo SpinButton per modificare il giorno, il mese o l'anno di una data. Il controllo SpinButton consente inoltre di scorrere un intervallo di valori o un elenco di elementi e di modificare il valore visualizzato in una casella di testo.

Per visualizzare un valore aggiornato da un controllo SpinButton, è necessario assegnare il valore del controllo SpinButton alla parte visualizzata di un controllo, quale la proprietà Caption di un controllo Label o la proprietà Text di un controllo TextBox. Per creare un controllo SpinButton orizzontale o verticale, trascinare i quadratini di ridimensionamento di SpinButton in senso orizzontale o verticale sul form.

La proprietà predefinita di un controllo SpinButton è Value.

L'evento predefinito di un controllo SpinButton è Change.


Controllo TabStrip (schede)

Consente di raggruppare visivamente una serie di controlli correlati.

Osservazioni

È possibile utilizzare un controllo TabStrip per visualizzare diverse informazioni su controlli correlati.

È possibile, ad esempio, che i controlli rappresentino informazioni relative alla programmazione giornaliera di un gruppo di persone suddivise per i diversi componenti del gruppo. Se nel titolo di ciascuna scheda si specifica il nome delle singole persone, sarà possibile scrivere del codice per aggiornare i controlli ogni volta che si fa clic su una scheda in modo da visualizzare le informazioni sulla persona indicata nella scheda stessa.

Nota  Il controllo TabStrip viene implementato come contenitore di un insieme Tabs che contiene a sua volta un gruppo di oggetti Tab.

La proprietà predefinita di un controllo TabStrip è SelectedItem.

L'evento predefinito di un controllo TabStrip è Change.


Controllo TextBox (casella di testo)

Visualizza le informazioni immesse da un utente o relative a un gruppo di dati organizzati.

Osservazioni

TextBox è il controllo utilizzato più di frequente per visualizzare le informazioni immesse da un utente. Il controllo consente inoltre di visualizzare un gruppo di dati, quale una tabella, una query, un foglio di lavoro o il risultato di un calcolo. Se un controllo TextBox è associato a una fonte dati, la modifica del contenuto del controllo TextBox modificherà il valore della fonte dati corrispondente.

La formattazione applicata a qualsiasi parte del contenuto del controllo TextBox ha effetto sull'intero testo del controllo. La modifica del tipo di carattere o delle dimensioni in punti di un carattere incluso nel controllo, ad esempio, ha effetto su tutti i caratteri del controllo.

La proprietà predefinita di un controllo TextBox è Value.

L'evento predefinito di un controllo TextBox è Change.


Controllo ToggleButton (pulsante interruttore)

Indica lo stato di selezione di un elemento.

Osservazioni

Utilizzare un controllo ToggleButton per indicare la selezione di un elemento. Se un controllo ToggleButton è associato a una fonte dati, il controllo visualizzerà il valore corrente della fonte dati con impostazioni quali Yes/No, True/False, On/Off o altre combinazioni di valori opposti. Se l'utente seleziona il controllo ToggleButton, l'impostazione corrente sarà Yes, True o On. In caso contrario, l'impostazione sarà No, False o Off. Se il controllo ToggleButton è associato a una fonte dati, la modifica dell'impostazione modificherà il valore della fonte dati corrispondente. In un controllo ToggleButton disattivato viene visualizzato un valore ma il controllo è a luminosità ridotta e il valore non può essere modificato dall'interfaccia utente.

È inoltre possibile utilizzare un controllo ToggleButton all'interno di un controllo Frame per selezionare uno o più elementi correlati di un gruppo. È possibile, ad esempio, creare un modulo d'ordine contenente un elenco degli articoli disponibili, ciascuno preceduto da un controllo ToggleButton. L'utente può selezionare un determinato articolo attivando il controllo ToggleButton appropriato.

La proprietà predefinita di un controllo ToggleButton è Value.

L'evento predefinito di un controllo ToggleButton è Click.


Oggetto DataObject

Area contenente dati di testo formattato utilizzata nelle operazioni di trasferimento. L'area contiene inoltre un elenco dei formati corrispondenti ai testi memorizzati nell'oggetto DataObject.

Osservazioni

Un oggetto DataObject può contenere una parte di testo per il formato di testo degli Appunti e altre parti di testo per ogni formato aggiuntivo, ad esempio un formato personalizzato o definito dall'utente.

L'oggetto DataObject e gli Appunti sono due elementi distinti. Un oggetto DataObject supporta i comandi che prevedono l'utilizzo degli Appunti e le operazioni di trascinamento della selezione. Quando viene eseguita un'operazione con gli Appunti (ad esempio GetText) o un'operazione di trascinamento, i dati vengono spostati in un oggetto DataObject.

L'oggetto DataObject funziona come gli Appunti. Se viene copiata una stringa di testo in un oggetto DataObject, la stringa viene memorizzata nell'oggetto. Se viene copiata una seconda stringa dello stesso formato, l'oggetto cancella la prima stringa di testo e memorizza una copia della seconda stringa. L'oggetto DataObject memorizza una parte di testo in un formato specifico e il testo interessato dall'ultima operazione eseguita.


Oggetto Font

Definisce le caratteristiche del testo utilizzato in un controllo o form.

Osservazioni

Per ogni controllo o form è disponibile un oggetto Font che consente di impostare le caratteristiche del testo indipendentemente dalle impostazioni di altri controlli o form. Utilizzare le proprietà di carattere per specificare il nome del carattere, impostare lo stile grassetto o sottolineato o determinare le dimensioni del testo.

Nota  Le proprietà relative al carattere del form o del contenitore determinano gli attributi di carattere predefiniti dei controlli inseriti nel form.

La proprietà predefinita dell'oggetto Font è Name. Se la proprietà Name include una stringa nulla, l'oggetto Font utilizza il tipo di carattere di sistema predefinito.


Controllo Label (etichetta)

Visualizza un testo descrittivo.

Osservazioni

Un controllo Label in un form visualizza un testo descrittivo, quale un titolo, una didascalia, un'immagine o una breve descrizione. Le etichette di una rubrica, ad esempio, possono contenere un controllo Label per il nome, la via o la città. Il controllo Label non consente di visualizzare i valori di fonti dati o espressioni. Il controllo è sempre non associato e non cambia quando si esegue uno spostamento da un record a un altro.

La proprietà predefinita di un controllo Label è Caption.

L'evento predefinito di un controllo Label è Click.


Oggetto Page

Pagina singola di un controllo MultiPage e membro di un insieme Pages.

Osservazioni

Ciascun oggetto Page contiene un gruppo di controlli indipendente e non è necessariamente collegato alle altre pagine dell'insieme per il recupero di informazioni. Un oggetto Page eredita alcune proprietà dal relativo contenitore. Il valore di ciascuna proprietà ereditata viene impostato dal contenitore.

A ogni oggetto Page vengono assegnati un nome e un valore di indice univoci all'interno di un insieme Pages. È possibile fare riferimento a un oggetto Page utilizzandone il nome o il valore di indice. L'indice del primo oggetto Page di un insieme è 0, l'indice del secondo oggetto Page è 1 e così via. Se due oggetti Page hanno lo stesso nome, è necessario fare riferimento a ciascun oggetto tramite il valore dell'indice. Facendo riferimento al nome, è infatti possibile accedere solo al primo oggetto Page avente tale nome.

Il nome predefinito del primo oggetto Page è Page1, il nome del secondo oggetto Page è Page2.


Oggetto Tab

Un oggetto Tab è un singolo membro di un insieme Tabs.

Osservazioni

Un oggetto Tab ha l'aspetto di un rettangolo che sporge da un'area rettangolare più grande o di un pulsante adiacente a un'area rettangolare.

A differenza di un oggetto Page, un oggetto Tab non contiene alcun controllo. I controlli visualizzati all'interno dell'area delimitata da un controllo TabStrip sono contenuti nel form come il controllo TabStrip.

Per ogni oggetto Tab è disponibile un gruppo di proprietà specifiche, ma non metodi o eventi. Per avviare l'elaborazione di un singolo oggetto Tab, è necessario utilizzare gli eventi del controllo TabStrip corrispondente.

A ogni oggetto Tab vengono assegnati un nome e un valore di indice univoci all'interno dell'insieme. È possibile fare riferimento a un oggetto Tab utilizzandone il nome o il valore di indice. L'indice del primo oggetto Tab è 0, l'indice del secondo oggetto Tab è 1 e così via. Se due oggetti Tab hanno lo stesso nome, è necessario fare riferimento a ciascun oggetto tramite il valore dell'indice. Facendo riferimento al nome, è infatti possibile accedere solo al primo oggetto Tab avente tale nome.


Insieme Controls

Include tutti i controlli contenuti in un oggetto.

Osservazioni

A ogni controllo contenuto in un insieme Controls di un oggetto viene assegnato un indice univoco il cui valore può essere un intero o una stringa. Il valore di indice del primo controllo di un insieme è 0, il valore del secondo controllo è 1 e così via. Il valore di indice indica l'ordine in cui i controlli sono stati aggiunti nell'insieme.

Se l'indice è una stringa, la stringa rappresenta il nome del controllo. Il nome di un controllo può essere inoltre specificato con la proprietà Name del controllo.

È possibile utilizzare l'insieme Controls per enumerare o contare i singoli controlli e impostarne le proprietà. È possibile, ad esempio, enumerare l'insieme Controls di un determinato form e impostare la proprietà Height di ciascun controllo su un valore specifico.

Nota  L'istruzione For Each...Next risulta particolarmente utile per l'enumerazione di insiemi.


Insieme Pages

Un insieme Pages include tutte le pagine di un controllo MultiPage.

Osservazioni

Ciascun insieme Pages include le funzioni per la gestione del numero di pagine dell'insieme e l'identificazione della pagina in uso.

A ogni oggetto Page vengono assegnati un nome e un valore di indice univoci all'interno di un insieme Pages. È possibile fare riferimento a un oggetto Page utilizzandone il nome o il valore di indice. L'indice del primo oggetto Page di un insieme è 0, l'indice del secondo oggetto Page è 1 e così via. Il nome predefinito della prima pagina è Page1, il nome predefinito della seconda pagina è Page2.

Il valore predefinito di un insieme Pages identifica l'oggetto Page corrente dell'insieme.


Insieme Tabs

Un insieme Tabs include tutti gli oggetti Tab di un controllo TabStrip.

Osservazioni

Ciascun insieme Tabs include le funzioni per la gestione del numero delle schede dell'insieme e l'identificazione della scheda in uso.

Il valore predefinito dell'insieme Tabs identifica l'oggetto Tab corrente dell'insieme.

A ogni oggetto Tab vengono assegnati un nome e un valore di indice univoci all'interno dell'insieme Tabs. È possibile fare riferimento a un oggetto Tab utilizzandone il nome o il valore di indice. Il valore di indice riflette la posizione ordinale dell'oggetto Tab all'interno dell'insieme. L'indice del primo oggetto Tab di un insieme è 0, l'indice del secondo oggetto Tab è 1 e così via.


Cenni preliminari sul modello ad oggetti di Microsoft Forms


Evento AddControl

Viene generato quando si inserisce un controllo in un form, in un controllo Frame o in un oggetto Page di un controllo MultiPage.

Sintassi

Per il controllo Frame
Private Sub object_AddControl( )

Per il controllo MultiPage
Private Sub object_AddControl( index As Long, ctrl As Control)

La sintassi dell’evento AddControl è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
index	Obbligatoria. Indice che identifica l'oggetto Page che conterrà il nuovo controllo.
ctrl	Obbligatoria. Controllo da aggiungere.
Osservazioni

L'evento AddControl viene generato aggiungendo un controllo in fase di esecuzione. L'evento non viene inizializzato quando viene aggiunto un controllo in fase di progettazione oppure quando un form viene caricato e visualizzato in fase di esecuzione.

L'azione predefinita di questo evento prevede l'aggiunta di un controllo al form specificato oppure al controllo Frame o MultiPage.

Il metodo Add inizializza l'evento AddControl.


Evento AfterUpdate

Viene generato dopo aver modificato i dati di un controllo tramite l'interfaccia utente.

Sintassi

Private Sub object_AfterUpdate( )

La sintassi dell’evento AfterUpdate è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
Osservazioni

L'evento AfterUpdate viene generato indipendentemente dal fatto che il controllo sia associato, ovvero nei casi in cui la proprietà RowSource specifica una fonte dati per il controllo. Questo evento non può essere annullato. Se si desidera annullare l'aggiornamento per ripristinare il valore precedente del controllo, utilizzare l'evento BeforeUpdate e impostare l'argomento Cancel su True.

L'evento AfterUpdate viene generato dopo l'evento BeforeUpdate, prima dell'evento Exit del controllo corrente e prima dell'evento Enter per il controllo successivo nell'ordine di tabulazione.


Evento BeforeDragOver

Viene generato durante un'operazione di trascinamento della selezione.

Sintassi

Per il controllo Frame
Private Sub object_BeforeDragOver( ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

Per il controllo MultiPage
Private Sub object_BeforeDragOver( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

Per il controllo TabStrip
Private Sub object_BeforeDragOver( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

Per gli altri controlli
Private Sub object_BeforeDragOver( ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

La sintassi dell’evento BeforeDragOver è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
index	Obbligatoria. Indice che identifica l'oggetto Page in un controllo MultiPage che verrà interessato dall'operazione di trascinamento della selezione.
Cancel	Obbligatoria. Stato dell'evento. False indica che il controllo dovrebbe gestire l'evento (impostazione predefinita). True indica che l'evento viene gestito dall'applicazione.
ctrl	Obbligatoria. Controllo sul quale viene eseguito il trascinamento.
Data	Obbligatoria. Dati trascinati durante un'operazione di trascinamento della selezione. I dati sono contenuti in DataObject.
X, Y	Obbligatoria. Coordinate orizzontale e verticale relative alla posizione del controllo. Le coordinate vengono sempre espresse in punti. La coordinata X viene misurata dal bordo sinistro del controllo, Y dal bordo superiore.
DragState	Obbligatoria. Stato di transizione dei dati in corso di trascinamento.
Effect	Obbligatoria. Operazione supportata dall'origine del trascinamento.
Shift	Obbligatoria. Specifica lo stato dei tasti MAIUSC, CTRL e ALT.
Impostazioni

Le possibili impostazioni di DragState sono:

Costante	Valore	Descrizione
fmDragStateEnter	0	Il puntatore del mouse è all'interno dell'area di destinazione.
fmDragStateLeave	1	Il puntatore del mouse è all’esterno dell'area di destinazione.
fmDragStateOver	2	Il puntatore del mouse si trova in una nuova posizione all'interno della stessa area di destinazione.
Le possibili impostazioni di Effect sono:

Costante	Valore	Descrizione
fmDropEffectNone	0	Non copia né sposta l’origine del trascinamento nella destinazione di rilascio.
fmDropEffectCopy	1	Copia l’origine del trascinamento nella destinazione di rilascio.
fmDropEffectMove	2	Sposta l’origine del trascinamento nella destinazione di rilascio.
fmDropEffectCopyOrMove	3	Copia o sposta l’origine del trascinamento nella destinazione di rilascio.
Le possibili impostazioni di Shift sono:

Costante	Valore	Descrizione
fmShiftMask	1	È stato premuto il tasto MAIUSC.
fmCtrlMask	2	È stato premuto il tasto CTRL.
fmAltMask	4	È stato premuto il tasto ALT.
Osservazioni

Questo evento consente di monitorare gli spostamenti del puntatore del mouse in entrata e in uscita da una destinazione valida oppure quando viene posizionato su tale destinazione. Durante l'esecuzione di un'operazione di trascinamento della selezione, l'evento viene inizializzato quando l'utente sposta il mouse oppure preme o rilascia i pulsanti del mouse. La posizione del puntatore del mouse determina l'oggetto di destinazione che riceve l'evento. È possibile determinare lo stato del puntatore del mouse esaminando l'argomento DragState.

Quando questo evento viene gestito da un controllo, è possibile utilizzare l'argomento Effect per determinare l'operazione di trascinamento della selezione da eseguire. Se l'argomento Effect è impostato su fmDropEffectCopyOrMove, l’origine del trascinamento supporta un’operazione di copia (fmDropEffectCopy), spostamento (fmDropEffectMove) o annullamento (fmDropEffectNone).

Quando l’argomento Effect è impostato su fmDropEffectCopy, l’origine del trascinamento supporta un’operazione di copia o annullamento (fmDropEffectNone).

Quando l’argomento Effect è impostato su fmDropEffectMove, l’origine del trascinamento supporta un’operazione di spostamento o annullamento (fmDropEffectNone).

Quando l’argomento Effect è impostato su fmDropEffectNone, l’origine del trascinamento supporta un’operazione di annullamento.

La maggior parte dei controlli non supporta il trascinamento della selezione quando l’argomento Cancel è False (impostazione predefinita). Ciò significa che il controllo non accetta operazioni di trascinamento della selezione che lo riguardano e che il controllo stesso non inizializza l’evento BeforeDropOrPaste. L’unica eccezione sono i controlli TextBox e ComboBox che supportano il trascinamento della selezione anche quando l’argomento Cancel è False.


Evento BeforeDropOrPaste

Viene generato quando l'utente è in procinto di trascinare o incollare i dati in un oggetto.

Sintassi

Per il controllo Frame
Private Sub object_BeforeDropOrPaste( ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

Per il controllo MultiPage
Private Sub object_BeforeDropOrPaste( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

Per il controllo TabStrip
Private Sub object_BeforeDropOrPaste( index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

Per gli altri controlli
Private Sub object_BeforeDropOrPaste( ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)

La sintassi dell’evento BeforeDropOrPaste è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
index	Obbligatoria. Indice che identifica l'oggetto Page in un controllo MultiPage che verrà incollato o trascinato.
Cancel	Obbligatoria. Stato dell'evento. False indica che il controllo dovrebbe gestire l'evento (impostazione predefinita). True indica che l'evento viene gestito dall'applicazione.
ctrl	Obbligatoria. Controllo di destinazione.
Action	Obbligatoria. Indica il risultato dell'operazione di trascinamento della selezione in sospeso in base alle impostazioni di tastiera correnti.
Data	Obbligatoria. Dati trascinati durante un'operazione di trascinamento della selezione. I dati sono contenuti in DataObject.
X, Y	Obbligatoria. Coordinate orizzontale e verticale del puntatore del mouse al momento del rilascio. Le coordinate vengono sempre espresse in punti. La coordinata X viene misurata dal bordo sinistro del controllo, Y dal bordo superiore.
Effect	Obbligatoria. Effetto dell'operazione di trascinamento della selezione sul controllo di destinazione.
Shift	Obbligatoria. Specifica lo stato di MAIUSC, CTRL e ALT.
Impostazioni

Le possibili impostazioni di Action sono:

Costante	Valore	Descrizione
fmActionPaste	2	Incolla l'oggetto selezionato nella destinazione di rilascio.
fmActionDragDrop	3	Indica che l'utente ha trascinato l'oggetto dall’origine alla destinazione di rilascio e lo ha rilasciato nella destinazione di rilascio.
Le possibili impostazioni di Effect sono:

Costante	Valore	Descrizione
fmDropEffectNone	0	Non copia o sposta l'origine del trascinamento nella destinazione di rilascio.
fmDropEffectCopy	1	Copia l’origine del trascinamento nella destinazione di rilascio.
fmDropEffectMove	2	Sposta l’origine del trascinamento nella destinazione di rilascio.
fmDropEffectCopyOrMove	3	Copia o sposta l’origine del trascinamento nella destinazione di rilascio.
Le possibili impostazioni di Shift sono:

Costante	Valore	Descrizione
fmShiftMask	1	È stato premuto il tasto MAIUSC.
fmCtrlMask	2	È stato premuto il tasto CTRL.
fmAltMask	4	È stato premuto il tasto ALT.
Osservazioni

Per un controllo MultiPage o TabStrip, Visual Basic, Applications Edition inizializza questo evento durante il trasferimento del contenuto di un oggetto DataObject nel controllo.

Per gli altri controlli, il sistema inizializza questo evento prima di trascinare o incollare l'oggetto.

Quando questo evento viene gestito da un controllo, è possibile aggiornare l'argomento Action per determinare l'operazione di trascinamento della selezione da eseguire. Se l'argomento Effect è impostato su fmDropEffectCopyOrMove, è possibile assegnare Action a fmDropEffectNone, fmDropEffectCopy o fmDropEffectMove. Se l'argomento Effect è impostato su fmDropEffectCopy o fmDropEffectMove, è possibile riassegnare Action a fmDropEffectNone. Non è possibile riassegnare Action quando l'argomento è impostato su fmDropEffectNone.


Evento BeforeUpdate

Viene generato prima della modifica dei dati in un controllo.

Sintassi

Private Sub object_BeforeUpdate( ByVal Cancel As MSForms.ReturnBoolean)

La sintassi dell’evento BeforeUpdate è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
Cancel	Obbligatoria. Stato dell’evento. False indica che il controllo dovrebbe gestire l'evento (impostazione predefinita). True annulla l'aggiornamento e indica che l'evento viene gestito dall'applicazione.
Osservazioni

L’evento BeforeUpdate viene generato indipendentemente dal fatto che il controllo sia associato, ovvero nei casi in cui la proprietà RowSource specifica una fonte dati per il controllo. Questo evento viene generato prima degli eventi AfterUpdate e Exit del controllo e prima dell’evento Enter per il controllo successivo su cui viene spostato lo stato attivo.

Se l’argomento Cancel viene impostato su True, lo stato attivo rimane sul controllo e gli eventi AfterUpdate e Exit non vengono generati.


Evento Change

Viene generato quando la proprietà Value viene modificata.

Sintassi

Private Sub object_Change( )

La sintassi dell’evento Change è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
Impostazioni

L’evento Change viene generato quando l'impostazione della proprietà Value viene modificata durante l’esecuzione del codice o da un’azione dell’utente nell’interfaccia.

Di seguito sono riportati alcuni esempi di azioni che modificano la proprietà Value:

•	Fare clic su un controllo CheckBox, OptionButton o ToggleButton.

•	Immettere o selezionare un nuovo valore di testo per un controllo ComboBox, ListBox o TextBox.

•	Selezionare una scheda diversa in un controllo TabStrip.

•	Spostare la casella di scorrimento in un controllo ScrollBar.

•	Fare clic sulla freccia rivolta verso l’alto o verso il basso in un controllo SpinButton.

•	Selezionare una pagina diversa in un controllo MultiPage.

Osservazioni

La routine di eventi Change consente di sincronizzare o organizzare i dati visualizzati nei controlli. È possibile, ad esempio, utilizzare la routine di eventi Change di un controllo ScrollBar per aggiornare il contenuto di un controllo TextBox che visualizza il valore di ScrollBar oppure per visualizzare i dati e le formule in un’area di lavoro e i risultati in un’altra area.

Nota  In alcuni casi, l’evento Click può inoltre essere generato quando il valore della proprietà Value viene modificato. Per individuare una modifica al valore di una proprietà, è preferibile utilizzare l’evento Change.


Evento Click

Viene generato in uno dei due casi seguenti:

•	Facendo clic su un controllo.

•	Selezionando in modo definitivo un valore per un controllo al quale è possibile assegnare più valori.

Sintassi

Per i controlli MultiPage e TabStrip
Private Sub object_Click( index As Long)

Per tutti gli altri controlli
Private Sub object_Click( )

La sintassi dell’evento Click è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
index	Obbligatoria. Indice che identifica la pagina o la scheda in un controllo MultiPage o TabStrip associato a questo evento.
Osservazioni

Il primo dei due casi in cui viene generato l’evento Click riguarda i controlli CommandButton, Frame, Image, Label, ScrollBar e SpinButton, mentre il secondo si riferisce ai controlli CheckBox, ComboBox, ListBox, MultiPage, TabStrip e ToggleButton, nonché a un controllo OptionButton quando il valore diventa True.

Di seguito sono riportati alcuni esempi di azioni che inizializzano l’evento Click:

•	Fare clic su un’area vuota di un form o su un controllo disattivato del form, diverso da una casella di riepilogo.

•	Fare clic su un controllo CommandButton. Se sul pulsante di comando non si trova lo stato attivo, l’evento Click è preceduto dall’evento Enter.

•	Premere la barra spaziatrice quando lo stato attivo si trova su un controllo CommandButton.

•	Fare clic su un controllo con il pulsante sinistro del mouse.

•	Premere INVIO quando è attivo un form contenente un pulsante di comando la cui proprietà Default è impostata su True, a condizione che lo stato attivo non si trovi su un altro pulsante di comando.

•	Premere ESC in un form contenente un pulsante di comando la cui proprietà Cancel è impostata su True, a condizione che lo stato attivo non si trovi su un altro pulsante di comando.

•	Premere il tasto di scelta rapida di un controllo.

Quando l’evento Click viene generato dopo aver fatto clic su un controllo, la sequenza di eventi che conducono all’evento Click è la seguente:

1.	MouseDown

2.	MouseUp

3.	Click

Con alcuni controlli, l’evento Click viene generato quando il valore della proprietà Value viene modificato. Per individuare una modifica al valore di una proprietà, la tecnica migliore è tuttavia l’utilizzo dell’evento Change. Di seguito sono riportati alcuni esempi di azioni che inizializzano l’evento Click in seguito all’assegnazione di un nuovo valore a un controllo:

•	Fare clic su una pagina o scheda diversa di un controllo MultiPage o TabStrip. La proprietà Value di questi controlli corrisponde all'oggetto Page o Tab corrente. Facendo clic sulla pagina o scheda corrente il valore del controllo non viene modificato e l’evento Click non viene inizializzato.

•	Fare clic su un controllo CheckBox o ToggleButton, premendo la barra spaziatrice quando lo stato attivo si trova su uno di questi controlli, premendo il tasto di scelta rapida di uno dei controlli o modificando il valore del controllo nel codice.

•	Impostare il valore di un controllo OptionButton su True. Impostando un controllo OptionButton di un gruppo su True, tutti gli altri pulsanti del gruppo vengono impostati su False, ma l’evento Click viene generato solo per il pulsante il cui valore viene impostato su True.

•	Selezionare un valore per un controllo ComboBox o ListBox in modo che corrisponda esattamente a una voce dell'elenco a discesa del controllo. Se un elenco non è ordinato, ad esempio, la prima corrispondenza dei caratteri digitati nell’area di modifica potrebbe non essere l’unica dell’elenco. Se, di conseguenza, si seleziona un valore di questo tipo, l’evento Click non viene generato. In un elenco ordinato, è possibile utilizzare la corrispondenza di voci per assicurare che i valori selezionati corrispondano in modo univoco al testo digitato dall’utente.

L’evento Click non viene generato quando la proprietà Value è impostata su Null.

Nota  Facendo clic con il pulsante sinistro del mouse, si modifica il valore di un controllo e viene generato pertanto l’evento Click. Facendo clic con il pulsante destro del mouse, il valore del controllo non cambia, pertanto l’evento Click non viene generato.


Evento DblClick

Viene generato quando l’utente posiziona il puntatore del mouse su un oggetto e fa clic due volte con un pulsante del mouse.

Sintassi

Per i controlli MultiPage e TabStrip
Private Sub object_DblClick( index As Long, ByVal Cancel As MSForms.ReturnBoolean)

Per gli altri controlli
Private Sub object_DblClick( ByVal Cancel As MSForms.ReturnBoolean)

La sintassi dell’evento DblClick è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
index	Obbligatoria. Posizione di un oggetto Page o Tab in un insieme Pages o Tabs.
Cancel	Obbligatoria. Stato dell’evento. False indica che il controllo dovrebbe gestire l'evento (impostazione predefinita). True indica che l'evento viene gestito dall'applicazione.
Osservazioni

Per generare questo evento, è necessario che i due clic vengano eseguiti con una velocità uguale o maggiore di quella specificata nell’impostazione di sistema.

Per i controlli che supportano l’evento Click, la sequenza di eventi elencata di seguito conduce all’evento DblClick:

1.	MouseDown

2.	MouseUp

3.	Click

4.	DblClick

Se un controllo, quale TextBox, non supporta l’evento Click, l’evento viene omesso dalla sequenza di eventi che conduce all’evento DblClick.

Se quando l’utente fa doppio clic, il valore restituito di Cancel è True, il secondo clic viene ignorato. Ciò risulta utile se il secondo clic inverte l’effetto del primo, come ad esempio quando si fa doppio clic su un pulsante interruttore. Con l’argomento Cancel il secondo clic sul form viene ignorato e di conseguenza con il clic singolo e il doppio clic si ottiene lo stesso risultato.


Evento DropButtonClick

Viene generato ogni volta che viene visualizzato o nascosto l'elenco a discesa.

Sintassi

Private Sub object_DropButtonClick( )

La sintassi dell’evento DropButtonClick è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
Osservazioni

È possibile inizializzare l’evento DropButtonClick tramite il codice o eseguendo determinate operazioni nell’interfaccia utente.

Nel codice, l’evento DropButtonClick viene inizializzato eseguendo una chiamata al metodo DropDown.

Nell’interfaccia utente, l’evento viene inizializzato eseguendo una delle seguenti operazioni:

•	Fare clic sul pulsante di apertura del controllo.

•	Premere F4.

Eseguendo una delle operazioni nel codice o nell’interfaccia, viene visualizzato l'elenco a discesa del controllo. L’evento DropButtonClick viene inizializzato alla chiusura dell'elenco a discesa.


Eventi Enter e Exit

L’evento Enter viene generato prima che lo stato attivo passi a un controllo da un altro controllo che si trova nello stesso form. L’evento Exit viene generato immediatamente prima che lo stato attivo venga spostato dal controllo a un altro controllo nello stesso form.

Sintassi

Private Sub object_Enter( )

Private Sub object_Exit( ByVal Cancel As MSForms.ReturnBoolean)

La sintassi degli eventi Enter e Exit è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
Cancel	Obbligatoria. Stato dell’evento. False indica che il controllo dovrebbe gestire l'evento (impostazione predefinita). True indica che l'evento viene gestito dall'applicazione e che lo stato attivo non viene spostato dal controllo corrente.
Osservazioni

Gli eventi Enter e Exit sono simili agli eventi GotFocus e LostFocus di Visual Basic. A differenza degli eventi GotFocus e LostFocus, gli eventi Enter e Exit non vengono generati quando un form riceve o perde lo stato attivo.

Si supponga, ad esempio, di selezionare la casella di controllo che inizializza l’evento Enter. Se si seleziona un altro controllo nello stesso form, l’evento Exit viene inizializzato per la casella di controllo, poiché lo stato attivo viene spostato su un altro oggetto nello stesso form, quindi viene generato l’evento Enter per il secondo controllo nel form.

Poiché l’evento Enter viene generato prima che lo stato attivo venga spostato su un determinato controllo, è possibile utilizzare una routine di eventi Enter per visualizzare delle istruzioni. È possibile, ad esempio, utilizzare una macro o una routine di eventi per visualizzare un form di piccole dimensioni o una finestra di messaggio che indica il tipo di dati contenuto in genere nel controllo.

Nota  Per evitare che lo stato attivo venga spostato dal controllo, assegnare True all’argomento Cancel dell’evento Exit.


Evento Error

Viene generato quando un controllo individua un errore e non è in grado di restituire le informazioni relative all’errore al programma che sta eseguendo la chiamata.

Sintassi

Per il controllo MultiPage
Private Sub object_Error( index As Long, ByVal Number As Integer, ByVal Descrizione As MSForms.ReturnString, ByVal SCode As SCode, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)

Per gli altri controlli
Private Sub object_Error( ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As SCode, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)

La sintassi dell’evento Error è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
index	Obbligatoria. Indice che identifica la pagina in un controllo MultiPage associato a questo evento.
Number	Obbligatoria. Specifica un valore univoco utilizzato dal controllo per identificare l’errore.
Description	Obbligatoria. Descrizione dell’errore.
SCode	Obbligatoria. Specifica il codice di stato OLE per l’errore. I 16 bit meno significativi specificano un valore che corrisponde all’argomento Number.
Source	Obbligatoria. Stringa che identifica il controllo che ha inizializzato l’evento.
HelpFile	Obbligatoria. Specifica un nome di percorso completo per il file della Guida che descrive l’errore.
HelpContext	Obbligatoria. Specifica l’ID di contesto dell’argomento del file della Guida contenente una descrizione dell’errore.
CancelDisplay	Obbligatoria. Specifica se la stringa dell’errore deve essere visualizzata in una finestra di messaggio.
Osservazioni

Il codice scritto per l’evento Error determina la modalità di risposta del controllo alla condizione di errore.

La capacità di gestire le condizioni di errore varia da un’applicazione all’altra. L’evento Error viene inizializzato quando viene generato un errore che l’applicazione non è in grado di gestire.


Eventi KeyDown e KeyUp

Vengono generati in sequenza quando l’utente preme e rilascia un tasto. KeyDown viene generato quando l’utente preme un tasto. KeyUp viene generato quando l’utente rilascia un tasto.

Sintassi

Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)

Private Sub object_KeyUp( ByVal KeyCode As MSForms.Integer, ByVal Shift As fmShiftState)

La sintassi degli eventi KeyDown e KeyUp è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
KeyCode	Obbligatoria. Intero che rappresenta il codice del tasto premuto o rilasciato.
Shift	Obbligatoria. Stato dei tasti MAIUSC, CTRL e ALT.
Impostazioni

Le possibili impostazioni di Shift sono:

Costante	Valore	Descrizione
fmShiftMask	1	È stato premuto il tasto MAIUSC.
fmCtrlMask	2	È stato premuto il tasto CTRL.
fmAltMask	4	È stato premuto il tasto ALT.
Osservazioni

L’evento KeyDown viene generato quando l’utente preme un tasto in un form in esecuzione mentre lo stato attivo si trova sul form stesso o su un controllo in esso contenuto. Gli eventi KeyDown e KeyPress si alternano fino a quando l’utente non rilascia il tasto e viene generato l’evento KeyUp. Il form o il controllo con lo stato attivo riceverà tutte le sequenze di tasti. È possibile spostare lo stato attivo soltanto sui form che non contengono alcun controllo oppure sui form in cui tutti i controlli visibili sono disattivati.

Questi eventi vengono generati anche quando viene inviata una sequenza di tasti a un form o controllo utilizzando l’azione SendKeys in una macro o l’istruzione SendKeys in Visual Basic.

Gli eventi KeyDown e KeyUp vengono in genere utilizzati per riconoscere o distinguere:

•	Tasti di caratteri estesi, quali i tasti funzione.

•	Tasti di spostamento, quali HOME, FINE, PGSU, PGGIÙ, freccia SU, freccia GIÙ, freccia DESTRA, freccia SINISTRA e TAB.

•	Sequenze di tasti e tasti standard di modifica delle funzioni della tastiera (MAIUSC, CTRL o ALT).

•	Tastierino numerico e tasti dei numeri della tastiera.

Gli eventi KeyDown e KeyUp non vengono generati nei seguenti casi:

•	L’utente preme INVIO in un form con un pulsante di comando la cui proprietà Default è impostata su True.

•	L’utente preme ESC in un form con un pulsante di comando la cui proprietà Cancel è impostata su True.

Gli eventi KeyDown e KeyPress vengono generati quando viene premuto o inviato un tasto ANSI. L’evento KeyUp viene generato dopo qualsiasi evento di un controllo generato dalla pressione o dall’invio di un tasto. Se una sequenza di tasti comporta lo spostamento dello stato attivo da un controllo a un altro, l’evento KeyDown viene generato per il primo controllo, mentre gli eventi KeyPress e KeyUp vengono generati per il secondo controllo.

La sequenza degli eventi della tastiera è la seguente:

1.	KeyDown

2.	KeyPress

3.	KeyUp

Nota  Gli eventi KeyDown e KeyUp possono essere utilizzati solo per i form e i controlli in un form. Per interpretare i caratteri ANSI o individuare il carattere ANSI corrispondente al tasto premuto, utilizzare l’evento KeyPress.


Evento KeyPress

Viene generato quando l’utente preme un tasto ANSI.

Sintassi

Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)

La sintassi dell’evento KeyPress è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
KeyANSI	Obbligatoria. Intero che rappresenta un codice di tasto ANSI numerico standard.
Osservazioni

L’evento KeyPress viene generato quando l’utente preme un tasto corrispondente a un carattere digitabile, ovvero un tasto ANSI, in un form in esecuzione mentre lo stato attivo si trova sul form stesso o su un controllo in esso contenuto. L’evento può essere generato prima o dopo il rilascio del tasto. L’evento viene inoltre generato quando viene inviata una sequenza di tasti ANSI a un form o controllo utilizzando l’azione SendKeys in una macro o l’istruzione SendKeys in Visual Basic.

Un evento KeyPress può essere generato quando viene premuto uno dei seguenti tasti:

•	Tutti i caratteri di tastiera che possono essere stampati.

•	CTRL in associazione a un carattere dell’alfabeto standard.

•	CTRL in associazione a un carattere speciale.

•	BACKSPACE.

•	ESC.

L’evento KeyPress non viene generato nei seguenti casi:

•	Quando si preme TAB.

•	Quando si preme INVIO.

•	Quando si preme un tasto di direzione.

•	Quando premendo una sequenza di tasti lo stato attivo viene spostato da un controllo a un altro.

Nota  A differenza di CANC, il tasto BACKSPACE fa parte del set di caratteri ANSI. L’eliminazione di un carattere in un controllo tramite BACKSPACE genera un evento KeyPress. Tale evento non viene generato se il carattere viene eliminato utilizzando il tasto CANC.

Se l’utente tiene premuto un tasto che produce un codice di tasto ANSI, gli eventi KeyDown e KeyPress si alternano fino a quando l’utente non rilascia il tasto e viene generato l’evento KeyUp. Il form o controllo in cui si trova lo stato attivo riceverà tutte le sequenze di tasti. È possibile spostare lo stato attivo soltanto sui form che non contengono alcun controllo oppure sui form in cui tutti i controlli visibili sono disattivati.

L’azione predefinita dell’evento KeyPress prevede l’elaborazione del codice dell’evento corrispondente al tasto premuto. L’argomento KeyANSI indica il carattere ANSI corrispondente al tasto o alla sequenza di tasti premuta. L’evento KeyPress interpreta la maiuscola e la minuscola di ogni carattere come codici di tasto diversi e, di conseguenza, come due caratteri distinti.

Per rispondere allo stato fisico della tastiera o per gestire i tasti non riconosciuti dall’evento KeyPress, quali i tasti funzione, i tasti di direzione e qualsiasi sequenza di tasti di modifica delle funzioni della tastiera (ALT, MAIUSC o CTRL), utilizzare le routine di eventi KeyDown e KeyUp.

La sequenza degli eventi della tastiera è la seguente:

1.	KeyDown

2.	KeyPress

3.	KeyUp


Evento Layout

Viene generato quando vengono modificate le dimensioni di un form o di un controllo Frame o MultiPage.

Sintassi

Per il controllo MultiPage
Private Sub object_Layout( index As Long)

Per tutti gli altri controlli
Private Sub object_Layout( )

La sintassi dell’evento Layout è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
index	Obbligatoria. Indice che identifica la pagina in un controllo MultiPage di cui sono state modificate le dimensioni.
Osservazioni

L’azione predefinita dell’evento Layout prevede il calcolo delle nuove posizioni dei controlli e l’aggiornamento della schermata.

L’utente può inizializzare l’evento Layout modificando la dimensione di un controllo.

Per i controlli che supportano la proprietà AutoSize, l’evento Layout viene inizializzato quando AutoSize modifica la dimensione di un controllo. Ciò si verifica quando l’utente modifica il valore di una proprietà che ha effetto sulla dimensione di un controllo. L’aumento delle dimensioni dell'oggetto Font di un controllo TextBox o Label, ad esempio, modifica la dimensione del controllo e inizializza un evento Layout.


Eventi MouseDown e MouseUp

Vengono generati quando l’utente fa clic con un pulsante del mouse. MouseDown viene generato quando l’utente preme il pulsante del mouse. MouseUp viene generato quando l’utente rilascia il pulsante del mouse.

Sintassi

Per i controlli MultiPage e TabStrip
Private Sub object_MouseDown( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub object_MouseUp( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Per gli altri controlli
Private Sub object_MouseDown( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub object_MouseUp( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

La sintassi degli eventi MouseDown e MouseUp è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
index	Obbligatoria. Indice che identifica la pagina o la scheda in un controllo MultiPage o TabStrip associato a questo evento.
Button	Obbligatoria. Intero che identifica quale pulsante del mouse ha generato l’evento.
Shift	Obbligatoria. Stato dei tasti MAIUSC, CTRL e ALT.
X, Y	Obbligatoria. Posizione orizzontale o verticale, espressa in punti, dal bordo sinistro o superiore del form, del controllo Frame o dell’oggetto Page.
Impostazioni

Le possibili impostazioni di Button sono:

Costante	Valore	Descrizione
fmButtonLeft	1	È stato premuto il pulsante sinistro del mouse.
fmButtonRight	2	È stato premuto il pulsante destro del mouse.
fmButtonMiddle	4	È stato premuto il pulsante centrale del mouse.
Le possibili impostazioni di Shift sono:

Valore	Descrizione
1	È stato premuto il tasto MAIUSC.
2	È stato premuto il tasto CTRL.
3	Sono stati premuti i tasti MAIUSC e CTRL.
4	È stato premuto il tasto ALT.
5	Sono stati premuti i tasti ALT e MAIUSC.
6	Sono stati premuti i tasti ALT e CTRL.
7	Sono stati premuti i tasti ALT, MAIUSC e CTRL.
È possibile identificare i singoli tasti di modifica delle funzioni della tastiera utilizzando le seguenti costanti:

Costante	Valore	Descrizione
fmShiftMask	1	Maschera per identificare MAIUSC.
fmCtrlMask	2	Maschera per identificare CTRL.
fmAltMask	4	Maschera per identificare ALT.
Osservazioni

Per un controllo MultiPage, l’evento MouseDown viene generato quando l’utente preme un pulsante del mouse sul controllo.

Per un controllo TabStrip, l’argomento indice identifica la scheda su cui l’utente ha fatto clic. Un valore di indice uguale a –1 indica che l’utente non ha fatto clic su alcuna scheda. Se il controllo, ad esempio, non contiene alcuna scheda nell’angolo superiore destro e l’utente fa clic nell’angolo, l’indice viene impostato su –1.

Per un form, l’utente può generare gli eventi MouseDown e MouseUp premendo e rilasciando il pulsante del mouse su un'area vuota, un selettore di record o una barra di scorrimento nel form.

La sequenza degli eventi del mouse è la seguente:

1.	MouseDown

2.	MouseUp

3.	Click

4.	DblClick

5.	MouseUp

Le routine di eventi MouseDown o MouseUp specificano le azioni che vengono eseguite quando un pulsante del mouse viene premuto o rilasciato. Gli eventi MouseDown e MouseUp consentono di identificare i pulsanti del mouse sinistro, destro e centrale. È inoltre possibile scrivere del codice per combinazioni di mouse e tastiera che utilizzano i tasti di modifica delle funzioni della tastiera ALT, MAIUSC e CTRL.

Se viene premuto un pulsante del mouse mentre il puntatore si trova su un form o controllo, l’oggetto riconoscerà il mouse e riceverà tutti gli eventi del mouse dall’ultimo evento MouseUp incluso. Di conseguenza, le coordinate X, Y del puntatore del mouse restituite da un evento del mouse potrebbero non essere comprese nell'area dell’oggetto che le riceve.

Se i pulsanti del mouse vengono premuti in successione, l’oggetto che riconosce il mouse riceverà tutti i successivi eventi del mouse fino a quando non vengono rilasciati tutti i pulsanti del mouse.

Utilizzare l’argomento Shift per identificare lo stato dei tasti ALT, MAIUSC e CTRL quando viene generato l’evento MouseDown o MouseUp. Se vengono premuti entrambi i pulsanti CTRL e ALT, ad esempio, il valore dell’argomento Shift sarà 6.


Evento MouseMove

Viene generato quando l’utente sposta il mouse.

Sintassi

Per i controlli MultiPage e TabStrip
Private Sub object_MouseMove( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Per gli altri controlli
Private Sub object_MouseMove( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

La sintassi dell’evento MouseMove è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
index	Obbligatoria. Indice che identifica la pagina o la scheda in un controllo MultiPage o TabStrip associato a questo evento.
Button	Obbligatoria. Intero che identifica lo stato dei pulsanti del mouse.
Shift	Obbligatoria. Specifica lo stato dei tasti MAIUSC, CTRL e ALT.
X, Y	Obbligatoria. Posizione orizzontale o verticale, misurata in punti, dal bordo sinistro o superiore del controllo.
Impostazioni

L’argomento index specifica la pagina o la scheda su cui è stato fatto clic. Un valore di –1 indica che l’utente non ha fatto clic su alcuna pagina o scheda.

Le possibili impostazioni di Button sono:

Valore	Descrizione
0	Non è stato premuto alcun pulsante del mouse.
1	È stato premuto il pulsante sinistro del mouse.
2	È stato premuto il pulsante destro del mouse.
3	Sono stati premuti i pulsanti destro e sinistro del mouse.
4	È stato premuto il pulsante centrale del mouse.
5	Sono stati premuti i pulsanti centrale e sinistro del mouse.
6	Sono stati premuti i pulsanti centrale e destro del mouse.
7	Sono stati premuti tutti e tre i pulsanti del mouse.
Le possibili impostazioni di Shift sono:

Valore	Descrizione
1	È stato premuto il tasto MAIUSC.
2	È stato premuto il tasto CTRL.
3	Sono stati premuti i tasti MAIUSC e CTRL.
4	È stato premuto il tasto ALT.
5	Sono stati premuti i tasti ALT e MAIUSC.
6	Sono stati premuti i tasti ALT e CTRL.
7	Sono stati premuti i tasti ALT, MAIUSC e CTRL.
È possibile identificare i singoli tasti di modifica delle funzioni della tastiera utilizzando le seguenti costanti:

Costante	Valore	Descrizione
fmShiftMask	1	Maschera per identificare MAIUSC.
fmCtrlMask	2	Maschera per identificare CTRL.
fmAltMask	4	Maschera per identificare ALT.
Osservazioni

L’evento MouseMove si applica ai form, ai controlli in un form e alle etichette.

Durante lo spostamento del puntatore del mouse sugli oggetti, vengono generati continuamente eventi MouseMove. Se il mouse non è già stato riconosciuto da un altro oggetto, un oggetto riconosce un evento MouseMove ogni volta che il mouse viene posizionato all’interno dei bordi dell’oggetto.

Anche se il mouse non viene spostato, è possibile che lo spostamento del form generi un evento MouseMove. Quando il form viene spostato sotto il puntatore, vengono generati eventi MouseMove. Se una macro o una routine di eventi sposta un form in risposta a un evento MouseMove, è possibile che l’evento generi continuamente (o a catena) eventi MouseMove.

Se due controlli sono molto vicini e il puntatore del mouse viene spostato rapidamente sullo spazio tra i due controlli, è possibile che l’evento MouseMove non venga generato per tale spazio. In tal caso, potrebbe essere necessario rispondere all’evento MouseMove in entrambi i controlli.

Il valore restituito nell’argomento Button consente di identificare lo stato dei pulsanti del mouse.

Utilizzare l’argomento Shift per identificare lo stato dei tasti MAIUSC, CTRL e ALT quando viene generato l’evento MouseMove. Se vengono premuti entrambi i tasti CTRL e ALT, ad esempio, il valore dell’argomento Shift sarà 6.

Nota  È possibile utilizzare le routine di eventi MouseDown e MouseUp per rispondere agli eventi generati premendo e rilasciando i pulsanti del mouse.


Evento RemoveControl

Viene generato quando un controllo viene eliminato dal contenitore.

Sintassi

Per MultiPage
Private Sub object_RemoveControl( index As Long, ctrl As Control)

Per tutti gli altri controlli
Private Sub object_RemoveControl( ctrl As Control)

La sintassi dell'evento RemoveControl è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
index	Obbligatoria. Indice della pagina nell'oggetto MultiPage che conteneva il controllo eliminato.
ctrl	Obbligatoria. Controllo eliminato.
Osservazioni

Questo evento viene generato quando un controllo viene eliminato dal form e non quando un controllo viene scaricato a causa della chiusura del form.


Evento Scroll

Viene generato quando la casella di scorrimento viene riposizionata.

Sintassi

Per ScrollBar
Private Sub object_Scroll( )

Per MultiPage
Private Sub object_Scroll( index As Long, ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)

Per Frame
Private Sub object_Scroll( ActionX As fmScrollAction, ActionY As fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle)

La sintassi dell'evento Scroll è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
index	Obbligatoria. Indice della pagina in un controllo MultiPage associato a questo evento.
ActionX	Obbligatoria. Azione che si è verificata in direzione orizzontale.
ActionY	Obbligatoria. Azione che si è verificata in direzione verticale.
RequestDx	Obbligatoria. Distanza in punti della quale si desidera spostare la barra di scorrimento in direzione orizzontale.
RequestDy	Obbligatoria. Distanza in punti della quale si desidera spostare la barra di scorrimento in direzione verticale.
ActualDx	Obbligatoria. Distanza in punti della quale la barra di scorrimento si è spostata in direzione orizzontale.
ActualDy	Obbligatoria. Distanza in punti della quale la barra di scorrimento si è spostata in direzione verticale.
Impostazioni

Le possibili impostazioni di ActionX e ActionY sono:

Costante	Valore	Descrizione
fmScrollActionNoChange	0	Non viene eseguito nessuno scorrimento.
fmScrollActionLineUp	1	Scorre di una riga verso l'alto in una barra di scorrimento verticale o verso sinistra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere la freccia SU o SINISTRA per spostare la barra di scorrimento.
fmScrollActionLineDown	2	Scorre di una riga verso il basso in una barra di scorrimento verticale o verso destra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere la freccia DESTRA o GIÙ per spostare la barra di scorrimento.
fmScrollActionPageUp	3	Scorre di una pagina verso l'alto in una barra di scorrimento verticale o di una pagina verso sinistra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere PGSU per spostare la barra di scorrimento.
fmScrollActionPageDown	4	Scorre di una pagina verso il basso in una barra di scorrimento verticale o di una pagina verso destra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere PGGIÙ per spostare la barra di scorrimento.
fmScrollActionBegin	5	Scorre all'estremità superiore di una barra di scorrimento verticale o all'estremità sinistra di una barra di scorrimento orizzontale.
fmScrollActionEnd	6	Scorre all'estremità inferiore di una barra di scorrimento verticale o all'estremità destra di una barra di scorrimento orizzontale.
fmScrollActionPropertyChange	8	Il valore della proprietà ScrollTop o ScrollLeft è cambiato. La direzione e l'entità dello spostamento dipendono da quale proprietà è cambiata e dal nuovo valore della proprietà.
fmScrollActionControlRequest	9	Un controllo ha richiesto lo scorrimento al proprio contenitore. L'entità dello spostamento dipende dal controllo specifico e dal contenitore.
fmScrollActionFocusRequest	10	L'utente è passato a un altro controllo. L'entità dello spostamento dipende dalla posizione del controllo selezionato. Ha in genere l'effetto di spostare il controllo selezionato, rendendolo completamente visibile all'utente.
Osservazioni

Gli eventi Scroll associati a un form, un controllo Frame o un oggetto Page restituiscono i seguenti argomenti: ActionX, ActionY, ActualX e ActualY. ActionX e ActionY identificano l'azione che si è verificata. ActualX e ActualY identificano la distanza di spostamento della casella di scorrimento.

L'operazione predefinita è il calcolo della nuova posizione della casella di scorrimento, quindi lo scorrimento in tale posizione.

È possibile generare un evento Scroll utilizzando il metodo Scroll per un form, un controllo Frame o un oggetto Page. Gli utenti possono generare questo evento spostando la casella di scorrimento.

L’evento Scroll associato a un controllo ScrollBar autonomo indica che l’utente ha spostato la casella di scorrimento in una delle due direzioni. Questo evento non viene generato quando il valore di ScrollBar viene modificato dal codice oppure dall’utente facendo clic su parti di ScrollBar diverse dalla casella di scorrimento.


Eventi SpinDown e SpinUp

SpinDown viene generato quando l'utente fa clic sulla freccia rivolta verso il basso o verso sinistra del pulsante di selezione. SpinUp viene generato quando l'utente fa clic sulla freccia rivolta verso l'alto o verso destra del pulsante di selezione.

Sintassi

Private Sub object_SpinDown( )

Private Sub object_SpinUp( )

La sintassi degli eventi SpinDown e SpinUp è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Oggetto valido.
Osservazioni

L'evento SpinDown riduce il valore della proprietà Value, mentre l'evento SpinUp aumenta il valore della proprietà Value.


Evento Zoom

Viene generato quando il valore della proprietà Zoom cambia.

Sintassi

Per Frame
Private Sub object_Zoom( Percent As Integer)

Per MultiPage
Private Sub object_Zoom( index As Long, Percent As Integer)

La sintassi dell'evento Zoom è composta dalle seguenti parti:

Parte	Descrizione
object	Obbligatoria. Nome di oggetto valido.
index	Obbligatoria. Indice della pagina in un controllo MultiPage associato a questo evento.
Percent	Obbligatoria. Percentuale di ingrandimento o riduzione del form. I valori validi vanno da 10% a 400%.
Osservazioni

Il valore della proprietà Zoom identifica la modalità di ridimensionamento del form o dell'oggetto Page. Il valore della proprietà indica in che modo le dimensioni del controllo dovranno cambiare rispetto alle dimensioni correnti. I valori minori di 100 riducono le dimensioni di visualizzazione del form. I valori maggiori di 100 aumentano le dimensioni di visualizzazione del form.

Questa proprietà può essere impostata su qualsiasi numero intero compreso tra 10 e 400.


Metodo Add

Aggiunge o inserisce un oggetto Tab o Page in un controllo TabStrip o MultiPage oppure aggiunge un controllo a una pagina o a un form in base all’ID programmatico (IDProg).

Sintassi

Per i controlli MultiPage, TabStrip
Set Oggetto = oggetto.Add( [ Nome [,  Didascalia [,  indice]]])

Per gli altri controlli
Set Controllo = oggetto.Add(  IDProg [,  Nome [,  Visibile]])

La sintassi del metodo Add è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di oggetto valido.
Nome	Facoltativa. Specifica il nome dell’oggetto aggiunto. Se non è specificato alcun nome, il sistema genera un nome predefinito in base alle regole dell’applicazione nella quale viene utilizzato il form.
Didascalia	Facoltativa. Specifica la didascalia che verrà visualizzata su una scheda o un controllo. Se non è specificata alcuna didascalia, il sistema genera una didascalia predefinita in base alle regole dell’applicazione nella quale viene utilizzato il form.
indice	Facoltativa. Identifica la posizione di una pagina o di una scheda all’interno di un insieme Pages o Tabs. Se non viene specificato un indice, il sistema aggiunge la pagina o la scheda alla fine dell’insieme Pages o Tabs assegnando il valore di indice appropriato.
IDProg	Obbligatoria. Identificatore programmatico. Stringa di testo senza spazi che identifica la classe di un oggetto. La sintassi standard dell'argomento IDProg è <Fornitore>.<Componente>.<Versione>. L'argomento IDProg viene associato a un identificatore di classe (CLSID).
Visibile	Facoltativa. True se l'oggetto è visibile (impostazione predefinita). False se l'oggetto è nascosto.
Impostazioni

Le possibili impostazioni di IDProg per i singoli controlli sono:

CheckBox	Forms.CheckBox.1
ComboBox	Forms.ComboBox.1
CommandButton	Forms.CommandButton.1
Frame	Forms.Frame.1
Image	Forms.Image.1
Label	Forms.Label.1
ListBox	Forms.ListBox.1
MultiPage	Forms.MultiPage.1
OptionButton	Forms.OptionButton.1
ScrollBar	Forms.ScrollBar.1
SpinButton	Forms.SpinButton.1
TabStrip	Forms.TabStrip.1
TextBox	Forms.TextBox.1
ToggleButton	Forms.ToggleButton.1
Osservazioni

Per un controllo MultiPage, il metodo Add restituisce un oggetto Page. Per un controllo TabStrip, restituisce un oggetto Tab. Il valore di indice per il primo oggetto Page o Tab di un insieme è 0, il valore per il secondo oggetto Page o Tab è 1 e così via.

Per l’insieme Controls di un oggetto, il metodo Add restituisce un controllo corrispondente all’IDProg specificato. Dopo l’aggiunta del controllo, viene generato l’evento AddControl.

La seguente sintassi restituisce la proprietà Text di un controllo aggiunto in fase di progettazione:

userform1.thebox.text

Se si aggiunge un controllo in fase di esecuzione, per fare riferimento alle proprietà del controllo, è necessario utilizzare la sintassi con punto esclamativo. La sintassi per la restituzione della proprietà Text di un controllo aggiunto in fase di esecuzione, ad esempio, è la seguente:

userform1!thebox.text

Nota  La proprietà Name di un controllo può essere modificata in fase di esecuzione soltanto se tale controllo è stato aggiunto in fase di esecuzione tramite il metodo Add.


Metodo AddItem

Con caselle di riepilogo o caselle combinate a colonna singola, aggiunge un elemento all’elenco, mentre con caselle di riepilogo o caselle combinate a più colonne aggiunge una riga.

Sintassi

Variant = oggetto.AddItem( [ elemento [,  indicevar]])

La sintassi del metodo AddItem è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
elemento	Facoltativa. Specifica l’elemento o la riga da aggiungere. Il numero corrispondente al primo elemento o riga è 0, il numero del secondo elemento o riga è 1 e così via.
indicevar	Facoltativa. Intero che specifica la posizione di inserimento di un nuovo elemento o di una nuova riga nell'oggetto.
Osservazioni

Se si fornisce un valore valido per indicevar, il metodo AddItem aggiunge l’elemento o la riga nella posizione corrispondente all’interno dell’elenco. Se si omette indicevar, il metodo aggiunge l’elemento o la riga in fondo all’elenco.

Il valore di indicevar non deve essere maggiore del valore della proprietà ListCount.

Nel caso di controlli ListBox o ComboBox a più colonne, AddItem consente di inserire un’intera riga, ovvero viene inserito un elemento per ciascuna colonna del controllo. Per assegnare valori a un elemento incluso in una colonna successiva alla prima, è necessario utilizzare la proprietà List o Column e specificare la riga e la colonna dell’elemento.

Se il controllo è associato a dati, il metodo AddItem non viene applicato.

Nota  È possibile aggiungere a un controllo ComboBox o ListBox più righe contemporaneamente utilizzando List.


Metodo Clear

Rimuove tutti gli oggetti da un oggetto o da un insieme.

Sintassi

oggetto.Clear

La sintassi del metodo Clear è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Per un controllo MultiPage o TabStrip, il metodo Clear elimina pagine o schede singole.

Per un controllo ListBox o ComboBox, Clear rimuove tutte le voci dell’elenco.

Per un insieme Controls, Clear elimina i controlli creati in fase di esecuzione con il metodo Add. L’utilizzo di Clear su controlli creati in fase di progettazione genera un errore.

Se il controllo è associato a dati, il metodo Clear non viene applicato.


Metodo Copy

Copia il contenuto di un oggetto negli Appunti.

Sintassi

oggetto.Copy

La sintassi del metodo Copy è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Il contenuto originale resta nell’oggetto.

Il contenuto copiato dipende dall’oggetto. In un oggetto Page, ad esempio, il metodo Copy copia il controllo o i controlli selezionati. In un controllo TextBox o ComboBox, il metodo copia il testo selezionato.

L’utilizzo di Copy per un form, un oggetto Frame o un oggetto Page determina la copia del controllo attivo.


Metodo Cut

Rimuove le informazioni selezionate da un oggetto e le trasferisce negli Appunti.

Sintassi

oggetto.Cut

La sintassi del metodo Cut è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

In un controllo ComboBox o TextBox, il metodo Cut rimuove il testo selezionato e lo inserisce negli Appunti. Il metodo non richiede che lo stato attivo si trovi sul controllo.

In un oggetto Page, Frame o in un form, Cut rimuove i controlli selezionati e li inserisce negli Appunti. Il metodo rimuove esclusivamente i controlli creati in fase di esecuzione.


Metodo DropDown

Visualizza l'elenco di un controllo ComboBox.

Sintassi

oggetto.DropDown

La sintassi del metodo DropDown è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Utilizzare il metodo DropDown per aprire l’elenco a discesa di una casella combinata.


Metodo GetFormat

Restituisce un valore intero che indica se un formato specifico è presente in DataObject.

Sintassi

Boolean = oggetto.GetFormat( formato)

La sintassi del metodo GetFormat è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
formato	Obbligatoria. Intero o stringa che specifica il formato che potrebbe essere presente in DataObject. Se il formato è presente, GetFormat restituisce True.
Impostazioni

Le possibili impostazioni di formato sono:

Valore	Descrizione
1	Formato testo.
Stringa o intero diverso da 1	Formato DataObject definito dall’utente passato a DataObject da SetText.
Osservazioni

Il metodo GetFormat ricerca un formato nell’elenco corrente di formati in DataObject. Se il formato si trova in DataObject, GetFormat restituisce True. In caso contrario, GetFormat restituisce False.

DataObject supporta attualmente soltanto formati di tipo testo.


Metodo GetFromClipboard

Sposta i dati dagli Appunti in un oggetto DataObject.

Sintassi

String = oggetto.GetFromClipboard( )

La sintassi del metodo GetFromClipboard è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di oggetto valido.
Osservazioni

DataObject può includere più elementi di dati, ciascuno dei quali deve avere un formato diverso. DataObject può ad esempio comprendere un elemento testuale e un elemento in un formato personalizzato, ma non due elementi testuali.


Metodo GetText

Recupera una stringa di testo da un oggetto DataObject utilizzando il formato specificato.

Sintassi

Stringa = oggetto.GetText( [ formato])

La sintassi del metodo GetText è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di oggetto valido.
formato	Facoltativa. Stringa o intero che specifica il formato dei dati da recuperare da DataObject.
Impostazioni

Le possibili impostazioni di formato sono:

Valore	Descrizione
1	Formato testo.
Stringa o intero diverso da 1	Formato DataObject definito dall’utente passato a DataObject da SetText.
Osservazioni

DataObject supporta più formati, ma un solo elemento di dati per ciascun formato. DataObject può ad esempio comprendere un elemento testuale e un elemento in un formato personalizzato, ma non due elementi testuali.

Se non si specifica il formato, il metodo GetText richiede a DataObject informazioni in formato testo.


Metodo Item

Restituisce un membro di un insieme, in base alla posizione o al nome.

Sintassi

Set Oggetto = oggetto.Item(  indiceinsieme)

La sintassi del metodo Item è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
indiceinsieme	Obbligatoria. Posizione, ovvero indice di un membro all’interno di un insieme.
Impostazioni

Il valore di indiceinsieme può essere una stringa o un intero. Se è una stringa, deve essere un nome di membro valido. Se è un numero intero, il valore minimo è 0, mentre il valore massimo è minore di uno rispetto al numero di elementi dell’insieme.

Osservazioni

Se viene specificato un indice o un nome non valido, viene generato un errore.


Metodo Move

Sposta un form, un controllo o tutti i controlli dell’insieme Controls.

Sintassi

Per un form o controllo
oggetto.Move( [Sinistra [,  Alto [,  Larghezza [,  Altezza [,  Layout]]]]])

Per l’insieme Controls
oggetto.Move( X, Y)

La sintassi del metodo Move è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di oggetto valido.
Sinistra	Facoltativa. Valore in precisione singola, espresso in punti, che indica la coordinata orizzontale del bordo sinistro dell'oggetto.
Alto	Facoltativa. Valore in precisione singola, espresso in punti, che indica la coordinata verticale del bordo superiore dell'oggetto.
Larghezza	Facoltativa. Valore in precisione singola, espresso in punti, che indica la larghezza dell'oggetto.
Altezza	Facoltativa. Valore in precisione singola, espresso in punti, che indica l'altezza dell'oggetto.
Layout	Facoltativa. Valore booleano che indica se in seguito allo spostamento viene inizializzato l'evento Layout per il contenitore del controllo. Il valore predefinito è False.
X, Y	Obbligatoria. Valore in precisione singola, espresso in punti, che indica lo spostamento dalla posizione orizzontale e verticale correnti di ciascun controllo dell’insieme Controls.
Impostazioni

I valori massimi e minimi per gli argomenti Sinistra, Alto, Larghezza, Altezza, X e Y variano a seconda dell'applicazione.

Osservazioni

Per form e controlli è possibile spostare una selezione in una posizione specifica in relazione ai bordi del form contenente la selezione.

È possibile utilizzare gli argomenti predefiniti oppure immettere gli argomenti in base alla posizione. Se si utilizzano gli argomenti predefiniti, è possibile elencare gli argomenti in qualsiasi ordine. In caso contrario, è necessario immettere gli argomenti nell'ordine indicato, utilizzando la virgola per indicare la posizione relativa degli argomenti non specificati. Tutti gli argomenti non specificati rimangono invariati.

Con l’insieme Controls è possibile spostare tutti i controlli in esso contenuti di una distanza specifica dalla posizione corrente in un form, in un controllo Frame o in un oggetto Page.


Metodo Paste

Trasferisce il contenuto degli Appunti in un oggetto.

Sintassi

oggetto.Paste

La sintassi del metodo Paste è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

I dati incollati in un controllo ComboBox o TextBox vengono considerati come testo.

Quando si utilizza questo metodo con un form, è possibile incollare nel form qualsiasi oggetto.


Metodo PutInClipboard

Sposta negli Appunti i dati contenuti in un oggetto DataObject.

Sintassi

oggetto.PutInClipboard

La sintassi del metodo PutInClipboard è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Il metodo PutInClipboard sostituisce il contenuto degli Appunti con il contenuto in formato testo di DataObject.


Metodo RedoAction

Ripete l'ultima azione annullata.

Sintassi

Boolean = oggetto.RedoAction

La sintassi del metodo RedoAction è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Il comando Ripeti riesegue l'ultima azione annullata che non corrisponde necessariamente all'ultima azione eseguita. Non tutte le operazioni possono essere annullate.

Dopo aver incollato del testo in un controllo TextBox, ad esempio, e aver scelto il comando Annulla per eliminare il testo, è possibile scegliere il comando Ripeti per inserire nuovamente il testo.

Nota  Se la proprietà CanRedo è False, il comando Ripeti non è disponibile nell'interfaccia utente e il metodo RedoAction non è valido nel codice.

RedoAction restituisce True in caso di esito positivo.


Metodo Remove

Rimuove un membro da un insieme oppure rimuove un controllo da un controllo Frame, da un oggetto Page o da un form.

Sintassi

oggetto.Remove(  indiceinsieme)

La sintassi del metodo Remove è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
indiceinsieme	Obbligatoria. Posizione, ovvero indice, di un membro all'interno di un insieme. Sono validi sia i valori numerici che i valori stringa. Se il valore è un numero, il valore minimo è zero, mentre il valore massimo è minore di uno rispetto al numero di membri dell'insieme. Se il valore è una stringa, deve corrispondere a un nome di membro valido.
Osservazioni

Questo metodo elimina qualsiasi controllo aggiunto in fase di esecuzione. Se si tenta tuttavia di eliminare un controllo aggiunto in fase di progettazione, verrà generato un errore.


Metodo RemoveItem

Elimina una riga dall'elenco di una casella di riepilogo o di una casella combinata.

Sintassi

Boolean = oggetto.RemoveItem(  indice)

La sintassi del metodo RemoveItem è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
indice	Obbligatoria. Specifica la riga da eliminare. Il numero della prima riga è 0, il numero della seconda riga è 1 e così via.
Questo metodo non elimina la riga dall'elenco se il controllo ListBox è associato a dati, ovvero nei casi in cui la proprietà RowSource specifica una fonte dati per il controllo ListBox.


Metodo Repaint

Aggiorna la visualizzazione ridisegnando il form o la pagina.

Sintassi

Boolean = oggetto.Repaint

La sintassi del metodo Repaint è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Il metodo Repaint risulta utile se il contenuto o l'aspetto di un oggetto viene modificato in maniera significativa e non si desidera aspettare che l'aggiornamento della visualizzazione venga eseguito automaticamente dal sistema.


Metodo Scroll

Sposta la barra di scorrimento di un oggetto.

Sintassi

oggetto.Scroll( [ AzioneX [,  AzioneY]])

La sintassi del metodo Scroll è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di oggetto valido.
AzioneX	Facoltativa. Identifica l'azione da eseguire in direzione orizzontale.
AzioneY	Facoltativa. Identifica l'azione da eseguire in direzione verticale.
Impostazioni

Le possibili impostazioni di AzioneX e AzioneY sono:

Costante	Valore	Descrizione
fmScrollActionNoChange	0	Non scorre nella direzione specificata.
fmScrollActionLineUp	1	Scorre di una riga verso l'alto in una barra di scorrimento verticale o verso sinistra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere la freccia SU o SINISTRA per spostare la barra di scorrimento.
fmScrollActionLineDown	2	Scorre di una riga verso il basso in una barra di scorrimento verticale o verso destra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere la freccia DESTRA o GIÙ per spostare la barra di scorrimento.
fmScrollActionPageUp	3	Scorre di una pagina verso l'alto in una barra di scorrimento verticale o di una pagina verso sinistra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere PGSU per spostare la barra di scorrimento.
fmScrollActionPageDown	4	Scorre di una pagina verso il basso in una barra di scorrimento verticale o di una pagina verso destra in una barra di scorrimento orizzontale. Lo spostamento equivale a premere PGGIÙ per spostare la barra di scorrimento.
fmScrollActionBegin	5	Scorre all'estremità superiore di una barra di scorrimento verticale o all'estremità sinistra di una barra di scorrimento orizzontale.
fmScrollActionEnd	6	Scorre all'estremità inferiore di una barra di scorrimento verticale o all'estremità destra di una barra di scorrimento orizzontale.
Osservazioni

Il metodo Scroll consente di aggiungere barre di scorrimento nei form, in controlli Frame o in oggetti Page con dimensioni maggiori dell’area di visualizzazione. Non è valido per il controllo ScrollBar autonomo né per barre di scorrimento visualizzate in un controllo TextBox.


Metodo SetDefaultTabOrder

Imposta la proprietà TabIndex di ciascun controllo di un form, utilizzando l'ordine di tabulazione predefinito dall'alto verso il basso e da sinistra verso destra.

Sintassi

oggetto.SetDefaultTabOrder

La sintassi del metodo SetDefaultTabOrder è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

In base all’ordine di tabulazione predefinito, lo stato attivo viene spostato sui controlli partendo da quelli che si trovano in alto a sinistra nel form e proseguendo verso destra. I controlli accanto al bordo sinistro del form precedono gli altri nell’ordine di tabulazione. Se più controlli si trovano alla stessa distanza dal bordo sinistro del form, i valori dell’ordine di tabulazione vengono assegnati a partire dai controlli che si trovano più in alto.


Metodo SetFocus

Sposta lo stato attivo sull'istanza corrente dell'oggetto.

Sintassi

oggetto.SetFocus

La sintassi del metodo SetFocus è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Se lo stato attivo non viene impostato correttamente, esso verrà rispostato sull'oggetto precedente e verrà generato un errore.

Per impostazione predefinita, lo spostamento dello stato attivo su un controllo non attiva la finestra del controllo né colloca il controllo in primo piano rispetto agli altri controlli.

Il metodo SetFocus è valido sia per controlli Frame vuoti che per controlli Frame contenenti altri controlli. Un controllo Frame vuoto riceve lo stato attivo. I successivi eventi della tastiera avranno pertanto effetto sul controllo. In un controllo Frame contenente altri controlli, lo stato attivo viene spostato sul primo controllo. I successivi eventi della tastiera avranno pertanto effetto sul controllo in cui si trova lo stato attivo.


Metodo SetText

Copia in un oggetto DataObject una stringa di testo utilizzando un formato specificato.

Sintassi

oggetto.SetText(  DatiMemorizzati [,  formato])

La sintassi del metodo SetText è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
DatiMemorizzati	Obbligatoria. Definisce i dati da memorizzare in DataObject.
formato	Facoltativa. Intero o stringa che specifica il formato di DatiMemorizzati. Quando si recuperano dati da DataObject, il formato identifica i dati specifici da recuperare.
Impostazioni

Le possibili impostazioni di formato sono:

Valore	Descrizione
1	Formato di testo.
Stringa o valore intero diverso da 1	Formato DataObject definito dall’utente.
Osservazioni

I dati vengono memorizzati in DataObject in base al formato. Quando l'utente fornisce una stringa, il testo viene salvato in DataObject con il formato specificato.

Se i dati di DataObject hanno lo stesso formato dei nuovi dati, questi sostituiranno i dati esistenti. Se i nuovi dati sono in un formato nuovo, sia i dati che il formato vengono aggiunti ai dati esistenti in DataObject.

Se non viene specificato un formato, il metodo SetText assegna alla stringa di testo il formato testo. Se si specifica un nuovo formato, DataObject lo registra nel sistema.


Metodo StartDrag

Inizializza un'operazione di trascinamento della selezione per DataObject.

Sintassi

fmDropEffect=Oggetto.StartDrag([Effetto as fmDropEffect])

La sintassi del metodo StartDrag è composta dalle seguenti parti:

Parte	Descrizione
Oggetto	Obbligatoria. Oggetto valido.
Effetto	Facoltativa. Effetto dell'operazione di trascinamento della selezione sul controllo di destinazione.
Impostazioni

Le possibili impostazioni di Effetto sono:

Costante	Valore	Descrizione
fmDropEffectNone	0	Non copia né sposta l'origine del trascinamento nella destinazione di rilascio.
fmDropEffectCopy	1	Copia l'origine del trascinamento nella destinazione di rilascio.
fmDropEffectMove	2	Sposta l'origine del trascinamento nella destinazione di rilascio.
fmDropEffectCopyOrMove	3	Copia o sposta l'origine del trascinamento nella destinazione di rilascio.
Osservazioni

L'operazione di trascinamento della selezione inizia dalla posizione corrente del puntatore del mouse e in base allo stato della tastiera e termina quando l'utente rilascia il pulsante del mouse. L'effetto dell'operazione di trascinamento della selezione dipende dall'effetto scelto per la destinazione di rilascio.

Il metodo StartDrag, ad esempio, potrebbe essere incluso nell'evento MouseMove di un controllo. Quando l'utente fa clic sul controllo e sposta il mouse, il puntatore del mouse assume una forma diversa per indicare se Effetto è valido per la destinazione di rilascio.


Metodo UndoAction

Annulla l'ultima azione eseguita che supporta il comando Annulla.

Sintassi

Boolean = oggetto.UndoAction

La sintassi del metodo UndoAction è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Il metodo UndoAction viene utilizzato nel comando Annulla dell'interfaccia utente. Se ad esempio si incolla del testo in un controllo TextBox, è possibile utilizzare il metodo UndoAction per eliminare il testo incollato e ripristinare il precedente contenuto del controllo TextBox.

Non è possibile annullare tutte le azioni eseguite dall'utente. Nel caso di un'azione che non è possibile annullare, il comando Annulla non sarà disponibile immediatamente dopo l'esecuzione dell'azione.

Nota  Se la proprietà CanUndo è False, il comando Annulla non è disponibile nell'interfaccia utente e il metodo UndoAction non è valido nel codice.

Se UndoAction viene applicato a un form, tutte le modifiche apportate al record corrente vengono annullate. Se UndoAction viene applicato a un controllo, l'annullamento avrà effetto solo sul controllo.

È necessario applicare questo metodo prima di aggiornare il form o il controllo. È possibile includere il metodo nell'evento BeforeUpdate di un form o nell'evento Change di un controllo.

UndoAction rappresenta un'alternativa all'istruzione SendKeys per l'invio del valore di ESC a una routine di eventi.


Metodo ZOrder

Inserisce l'oggetto in primo piano o nell'ultima posizione nell'ordine z.

Sintassi

oggetto.ZOrder( [ posizioneZ])

La sintassi del metodo ZOrder è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
posizioneZ	Facoltativa. Posizione di un controllo, in primo piano o nell'ultima posizione, nell'ordine z di un contenitore.
Impostazioni

Le possibili impostazioni di posizioneZ sono:

Costante	Valore	Descrizione
fmTop	0	Inserisce il controllo in primo piano nell'ordine z. Il controllo viene visualizzato in primo piano rispetto agli altri controlli (impostazione predefinita).
fmBottom	1	Inserisce il controllo nell'ultima posizione dell'ordine z. Il controllo viene visualizzato in secondo piano rispetto a tutti gli altri controlli.
Osservazioni

L'ordine z determina la modalità di sovrapposizione delle finestre e dei controlli visualizzati dall'utente. Gli elementi possono occupare diverse posizioni all'interno dell'ordine z e quindi essere in primo piano o in secondo piano rispetto ad altri elementi. Se si omette l'argomento posizioneZ, l'oggetto viene visualizzato in primo piano.

In modalità progettazione, i comandi Porta in primo piano o Porta in secondo piano impostano l'ordine z. La scelta del comando Porta in primo piano equivale a utilizzare il metodo ZOrder e a inserire l'oggetto in primo piano nell'ordine z. La scelta del comando Porta in secondo piano equivale a utilizzare il metodo ZOrder e a inserire l'oggetto nell'ultima posizione dell'ordine z.

Questo metodo non ha effetto sul contenuto o sulla sequenza dei controlli dell'insieme Controls.

Nota   Non è possibile annullare o ripetere i comandi relativi alla sovrapposizione, quali Porta in secondo piano o Porta in primo piano. Se, ad esempio, si seleziona un oggetto e si sceglie Porta indietro nel menu di scelta rapida, non sarà possibile annullare o ripetere tale comando.


Proprietà Accelerator

Imposta o recupera il tasto di scelta rapida di un controllo.

Sintassi

oggetto.Accelerator [= String]

La sintassi della proprietà Accelerator è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Carattere da utilizzare come tasto di scelta rapida.
Osservazioni

Per definire un tasto di scelta rapida, immettere un solo carattere per la proprietà Accelerator. È possibile impostare la proprietà Accelerator nella finestra delle proprietà del controllo o nel codice. Se il valore di questa proprietà contiene più caratteri, Accelerator assumerà come valore il primo carattere della stringa.

Quando si utilizza un tasto di scelta rapida, solo lo stato attivo indica visivamente che il controllo ha inizializzato l'evento Click. Se ad esempio il tasto di scelta rapida si applica a un controllo CommandButton, nell'interfaccia non verrà visualizzato il pulsante premuto. Tuttavia, il pulsante riceve lo stato attivo quando l'utente preme il tasto di scelta rapida.

Se il tasto di scelta rapida viene utilizzato per un controllo Label, lo stato attivo viene spostato sul controllo successivo a Label nell'ordine di tabulazione, anziché sul controllo Label stesso.


Proprietà ActiveControl

Identifica e consente la gestione del controllo in cui si trova lo stato attivo.

Sintassi

oggetto.ActiveControl

La sintassi della proprietà ActiveControl è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

La proprietà ActiveControl è di sola lettura e viene impostata quando si seleziona un controllo nell'interfaccia. È possibile utilizzare ActiveControl in sostituzione del nome del controllo quando si impostano le proprietà o si richiamano i metodi.


Proprietà Alignment

Specifica la posizione di un controllo in relazione alla relativa didascalia.

Sintassi

oggetto.Alignment [= fmAlignment]

La sintassi della proprietà Alignment è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmAlignment	Facoltativa. Posizione della didascalia.
Impostazioni

Le possibili impostazioni di fmAlignment sono:

Costante	Valore	Descrizione
fmAlignmentLeft	0	Inserisce la didascalia a sinistra del controllo.
fmAlignmentRight	1	Inserisce la didascalia a destra del controllo (impostazione predefinita).
Osservazioni

Il testo della didascalia di un controllo è allineato a sinistra.

Nota  Per il controllo ToggleButton la proprietà Alignment, pur essendo disponibile, è disattivata, ovvero non è possibile impostarne o restituirne il valore.


Proprietà AutoSize

Specifica se un oggetto viene ridimensionato automaticamente per consentire la visualizzazione dell'intero contenuto.

Sintassi

oggetto.AutoSize [= Boolean]

La sintassi della proprietà AutoSize è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Specifica se il controllo viene ridimensionato.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Ridimensiona automaticamente il controllo per visualizzarne l'intero contenuto.
False	Mantiene costante la dimensione del controllo. Il contenuto viene ritagliato quando supera l'area del controllo (impostazione predefinita).
Osservazioni

Per i controlli con didascalie, la proprietà AutoSize specifica se il controllo viene ridimensionato automaticamente in modo da visualizzare la didascalia completa.

Per i controlli senza didascalie, questa proprietà specifica se il controllo viene ridimensionato automaticamente in modo da visualizzare le informazioni in esso memorizzate. In un controllo ComboBox, ad esempio, l'impostazione di AutoSize su True comporta l'impostazione automatica della larghezza dell'area di visualizzazione in modo che corrisponda alla lunghezza del testo corrente.

Per le caselle di testo a riga singola, l'impostazione di AutoSize su True comporta l'impostazione automatica della larghezza dell'area di visualizzazione sulla lunghezza del testo della casella di testo.

Per le caselle di testo a righe multiple che non includono testo, l'impostazione di AutoSize su True visualizza automaticamente il testo sotto forma di colonna. La larghezza della colonna di testo viene impostata in modo da contenere la dimensione massima dei caratteri utilizzati. L'altezza della colonna di testo viene impostata in modo da visualizzare il testo completo del controllo TextBox.

Per le caselle di testo a righe multiple contenenti testo, l'impostazione di AutoSize su True allarga automaticamente il controllo TextBox in senso verticale in modo che l’intero testo sia visualizzato. La larghezza del controllo rimane invariata.

Nota   Se si modificano le dimensioni di un controllo in modo manuale mentre AutoSize è impostata su True, le nuove dimensioni sovrascriveranno quelle impostate precedentemente.


Proprietà AutoTab

Specifica se viene eseguito uno spostamento automatico nell'ordine di tabulazione quando un utente immette il numero massimo di caratteri in un controllo TextBox o nell'area di immissione del testo di un controllo ComboBox.

Sintassi

oggetto.AutoTab [= Boolean]

La sintassi della proprietà AutoTab è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Specifica se viene eseguito uno spostamento automatico nell'ordine di tabulazione.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Viene eseguito uno spostamento nell'ordine di tabulazione.
False	Non viene eseguito uno spostamento nell'ordine di tabulazione (impostazione predefinita).
Osservazioni

La proprietà MaxLength specifica il numero massimo di caratteri consentito in un controllo TextBox o nell'area di immissione del testo di un controllo ComboBox.

È possibile specificare la proprietà AutoTab per un controllo TextBox o ComboBox in un form nel quale si immette in genere un numero di caratteri definito. Quando viene raggiunto il numero massimo di caratteri che è possibile immettere, lo stato attivo viene spostato automaticamente sul controllo successivo nell'ordine di tabulazione. Se ad esempio in un controllo TextBox vengono visualizzati numeri di inventario con lunghezza costante di cinque caratteri, è possibile utilizzare la proprietà MaxLength per specificare il numero massimo di caratteri che è possibile immettere nel controllo TextBox. La proprietà AutoTab può quindi essere utilizzata per spostare automaticamente lo stato attivo sul controllo successivo dopo l'immissione del numero di caratteri consentiti.

Il supporto per AutoTab varia a seconda dell’applicazione. Non tutti i contenitori supportano questa proprietà.


Proprietà AutoWordSelect

Specifica se la selezione viene estesa di una parola o di un carattere.

Sintassi

oggetto.AutoWordSelect [= Boolean]

La sintassi della proprietà AutoWordSelect è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Specifica l'unità di base utilizzata per estendere una selezione.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	La selezione viene estesa di una parola (impostazione predefinita).
False	La selezione viene estesa di un carattere.
Osservazioni

La proprietà AutoWordSelect specifica la modalità di estensione o di riduzione della selezione nell'area di modifica di un controllo TextBox o ComboBox.

Se la proprietà AutoWordSelect è impostata su True e il punto di inserimento viene posizionato al centro di una parola e quindi si estende la selezione, la selezione includerà la parola intera.


Proprietà BackColor

Specifica il colore di sfondo dell'oggetto.

Sintassi

oggetto.BackColor [= Long]

La sintassi della proprietà BackColor è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Valore o costante che determina il colore di sfondo di un oggetto.
Impostazioni

È possibile utilizzare qualsiasi valore intero che rappresenta un colore valido. È inoltre possibile specificare un colore utilizzando la funzione RGB con i componenti rosso, verde e blu. Il valore di ciascun componente del colore è un intero compreso tra 0 e 255. È ad esempio possibile specificare il colore verde acqua come il valore intero 4966415 oppure come una combinazione dei colori rosso, verde e blu ovvero 15, 200 e 75.

Osservazioni

Il colore di sfondo di un oggetto è visibile solo se la proprietà BackStyle è impostata su fmBackStyleOpaque.


Proprietà BackStyle

Restituisce o imposta lo stile dello sfondo di un oggetto.

Sintassi

oggetto.BackStyle [= fmBackStyle]

La sintassi della proprietà BackStyle è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmBackStyle	Facoltativa. Specifica lo sfondo del controllo.
Impostazioni

Le possibili impostazioni di fmBackStyle sono:

Costante	Valore	Descrizione
fmBackStyleTransparent	0	Lo sfondo è trasparente.
fmBackStyleOpaque	1	Lo sfondo è opaco (impostazione predefinita).
Osservazioni

La proprietà BackStyle determina se un controllo è trasparente. Se BackStyle è impostata su fmBackStyleOpaque, il controllo non è trasparente e non sarà possibile visualizzare altri elementi dietro il controllo nel form. Se BackStyle è fmBackStyleTransparent, è possibile visualizzare eventuali elementi del form dietro il controllo.

Nota  La proprietà BackStyle non ha effetto sulla trasparenza delle bitmap. Per rendere trasparente una bitmap, è necessario utilizzare un editor di immagini quale Paintbrush. Non tutti i controlli supportano le bitmap trasparenti.


Proprietà Bold, Italic, Size, StrikeThrough, Underline e Weight

Specificano gli attributi visivi del testo di un form visualizzato o stampato.

Sintassi

oggetto.Bold [= Boolean]

oggetto.Italic [= Boolean]

oggetto.Size [= Currency]

oggetto.StrikeThrough [= Boolean]

oggetto.Underline [= Boolean]

oggetto.Weight [= Integer]

La sintassi delle proprietà Bold, Italic, Size, StrikeThrough, Underline e Weight è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di oggetto valido.
Boolean	Facoltativa. Specifica lo stile del carattere.
Currency	Facoltativa. Numero che indica la dimensione dei caratteri.
Integer	Facoltativa. Specifica lo stile del carattere.
Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Al testo è applicato l'attributo specificato (ovvero grassetto, corsivo, barrato o sottolineato oppure l'attributo relativo alla dimensione o allo spessore).
False	Al testo non è applicato l'attributo specificato (impostazione predefinita).
Per la proprietà Weight è possibile impostare valori compresi tra 0 e 1000. Il valore 0 consente al sistema di selezionare lo spessore più appropriato. Un valore compreso tra 1 e 1000 indica uno spessore specifico, dove 1 rappresenta lo spessore più sottile, mentre 1000 rappresenta lo spessore più marcato.

Osservazioni

Queste proprietà definiscono le caratteristiche visive del testo. La proprietà Bold determina se il testo è normale o grassetto. La proprietà Italic determina se il testo è normale o corsivo. La proprietà Size determina l'altezza, espressa in punti, del testo visualizzato. La proprietà Underline determina se il testo è sottolineato. La proprietà StrikeThrough determina se il testo è barrato. La proprietà Weight determina lo spessore del carattere.

A seconda del computer e della stampante utilizzati, è possibile che l'aspetto del carattere visualizzato sullo schermo sia diverso dal carattere stampato. Se si seleziona un tipo di carattere non installato o che il sistema non è in grado di visualizzare con l'attributo specificato, tale tipo di carattere verrà sostituito automaticamente con un tipo di carattere simile in Windows. Il tipo di carattere sostitutivo sarà il più simile possibile al tipo di carattere originale richiesto.

La modifica del valore della proprietà Bold comporta la modifica automatica del valore della proprietà Weight. Se si imposta Bold su True, Weight viene impostata su 700. Se si imposta Bold su False, Weight viene impostata su 400. Analogamente, se si imposta Weight su un valore maggiore di 550, la proprietà Bold viene impostata su True, mentre se si imposta Weight su 550 o su un valore minore, la proprietà Bold viene impostata su False.

La dimensione in punti predefinita è determinata dal sistema operativo.


Proprietà BorderColor

Specifica il colore del bordo di un oggetto.

Sintassi

oggetto.BorderColor [= Long]

La sintassi della proprietà BorderColor è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Valore o costante che determina il colore del bordo di un oggetto.
Impostazioni

È possibile utilizzare qualsiasi valore intero che rappresenta un colore valido. È inoltre possibile specificare un colore utilizzando la funzione RGB con i componenti rosso, verde e blu. Il valore di ciascun componente del colore è un intero compreso tra 0 e 255. È ad esempio possibile specificare il colore verde acqua come il valore intero 4966415 oppure come una combinazione dei colori rosso, verde e blu ovvero 15, 200 e 75.

Osservazioni

Per utilizzare la proprietà BorderColor, è necessario che la proprietà BorderStyle sia impostata su un valore diverso da fmBorderStyleNone.

BorderStyle utilizza BorderColor per definire i colori del bordo. La proprietà SpecialEffect utilizza i colori di sistema esclusivamente per definire i colori del bordo. Nei sistemi operativi Windows, i colori di sistema vengono impostati nel Pannello di controllo nella scheda Aspetto della finestra per le impostazioni dello schermo. In Windows NT 3.51, i colori di sistema vengono impostati nella sezione relativa ai colori del Pannello di controllo.


Proprietà BorderStyle

Specifica il tipo di bordo utilizzato da un controllo o da un form.

Sintassi

oggetto.BorderStyle [= fmBorderStyle]

La sintassi della proprietà BorderStyle è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmBorderStyle	Facoltativa. Specifica lo stile del bordo.
Impostazioni

Le possibili impostazioni di fmBorderStyle sono:

Costante	Valore	Descrizione
fmBorderStyleNone	0	Il controllo non ha un bordo visibile.
fmBorderStyleSingle	1	Il controllo ha un bordo a riga singola (impostazione predefinita).
Il valore predefinito per un controllo ComboBox, Frame, Label, ListBox o TextBox è 0 (None). Il valore predefinito per un controllo Image è 1 (Single).

Osservazioni

Per un controllo Frame, la proprietà BorderStyle viene ignorata se la proprietà SpecialEffect è impostata su None.

Per specificare il bordo di un controllo è possibile utilizzare le proprietà BorderStyle e SpecialEffect, ma non entrambe. Se si specifica un valore diverso da zero per una di queste proprietà, il valore dell'altra proprietà verrà impostato automaticamente su zero. Se ad esempio si imposta BorderStyle su fmBorderStyleSingle, SpecialEffect verrà impostata su zero (Flat). Se si specifica un valore diverso da zero per la proprietà SpecialEffect, BorderStyle verrà impostata su zero.

BorderStyle utilizza la proprietà BorderColor per definire i colori del bordo.


Proprietà BoundColumn

Identifica la fonte dati di un controllo ComboBox o ListBox a colonne multiple.

Sintassi

oggetto.BoundColumn [= Variant]

La sintassi della proprietà BoundColumn è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Variant	Facoltativa. Indica la modalità di selezione del valore di BoundColumn.
Impostazioni

Le possibili impostazioni di Variant sono:

Valore	Descrizione
0	Assegna al controllo il valore della proprietà ListIndex.
1 o maggiore	Assegna al controllo il valore della colonna specificata. Le colonne vengono numerate a partire da 1 (impostazione predefinita).
Osservazioni

Quando l'utente sceglie una riga di un controllo ListBox o ComboBox a colonne multiple, la proprietà BoundColumn identifica quale elemento della riga memorizzare come valore del controllo. Se, ad esempio, ciascuna riga contiene 8 elementi e il valore della proprietà BoundColumn è 3, le informazioni verranno memorizzate automaticamente come valore dell'oggetto nella terza colonna della riga selezionata.

Le proprietà BoundColumn e TextColumn consentono di visualizzare un singolo gruppo di dati, ma di memorizzare valori associati diversi per l'oggetto. La proprietà TextColumn identifica la colonna di dati visualizzata in un controllo ComboBox o ListBox, mentre la proprietà BoundColumn identifica la colonna dei valori dei dati associati memorizzati per il controllo. È ad esempio possibile impostare un controllo ListBox a colonne multiple contenente i giorni festivi in una colonna e le date corrispondenti in una seconda colonna. Per visualizzare i giorni festivi, specificare la prima colonna come TextColumn. Per memorizzare le date dei giorni festivi, specificare la seconda colonna come BoundColumn.

Se il controllo è associato a una fonte dati, il valore della colonna specificata da BoundColumn è memorizzato nella fonte dati specificata nella proprietà ControlSource.

Il valore ListIndex recupera il numero della riga selezionata. Se ad esempio si desidera conoscere la riga dell'elemento selezionato, impostare BoundColumn su 0 per impostare il numero della riga selezionata come valore per il controllo. Se si fa riferimento a un elenco il cui contenuto è soggetto a modifiche, è necessario assicurarsi che venga recuperato un valore corrente, anziché un valore salvato in precedenza.

Le proprietà Column, List e ListIndex utilizzano la numerazione con numero di partenza uguale a zero, ovvero l'indice del primo elemento (colonna o riga) è zero, l'indice del secondo elemento è uno e così via. In base a questa numerazione, se la proprietà BoundColumn è impostata su 3, è possibile utilizzare l'espressione Column(2) per accedere al valore memorizzato in tale colonna.


Proprietà BoundValue

Contiene il valore di un controllo quando tale controllo riceve lo stato attivo.

Sintassi

oggetto.BoundValue [= Variant]

La sintassi della proprietà BoundValue è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Variant	Facoltativa. Stato corrente o contenuto del controllo.
Impostazioni

Controllo	Descrizione
CheckBox	Valore intero che indica se l’elemento è selezionato:
	Null   Indica che l’elemento è nello stato Null, ovvero né selezionato né deselezionato.
	–1   True. Indica che l’elemento è selezionato.
	0   False. Indica che l’elemento non è selezionato.
OptionButton	Impostazioni analoghe a quelle per CheckBox.
ToggleButton	Impostazioni analoghe a quelle per CheckBox.
ScrollBar	Numero intero compreso tra i valori specificati per le proprietà Max e Min.
SpinButton	Impostazioni analoghe a quelle per ScrollBar.
ComboBox, ListBox	Valore in BoundColumn relativo alle righe selezionate.
CommandButton	Sempre False.
MultiPage	Numero intero che indica la pagina attiva.
	Zero (0) indica la prima pagina. Il valore massimo è minore di uno rispetto al numero delle pagine.
TextBox	Testo nell’area di modifica.
Osservazioni

BoundValue si applica al controllo in cui si trova lo stato attivo.

Il contenuto della proprietà BoundValue è in genere uguale a quello della proprietà Value. Quando l'utente modifica il controllo, ovvero ne modifica il valore, il contenuto di BoundValue e quello di Value rimangono diversi fino a quando la modifica non diventa definitiva.

Quando l'utente modifica il valore di un controllo possono verificarsi diversi tipi di conseguenze. Se, ad esempio, viene modificato il testo contenuto in un controllo TextBox:

1.	Viene inizializzato l'evento Change. A questo punto la proprietà Value conterrà il nuovo testo mentre BoundValue il testo precedente.

2.	Viene inizializzato l'evento BeforeUpdate.

3.	Viene inizializzato l'evento AfterUpdate. I valori di BoundValue e Value saranno nuovamente identici. Entrambe le proprietà conterranno infatti il nuovo testo.

Non è possibile utilizzare la proprietà BoundValue con una casella di riepilogo a selezione multipla.


Proprietà Cancel

Restituisce o imposta un valore che indica se un pulsante di comando è il pulsante Annulla in un form.

Sintassi

oggetto.Cancel [= Boolean]

La sintassi della proprietà Cancel è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Specifica se l'oggetto è il pulsante Annulla.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il controllo CommandButton è il pulsante Annulla.
False	Il controllo CommandButton non è il pulsante Annulla (impostazione predefinita).
Osservazioni

È possibile impostare come pulsante di comando predefinito un controllo CommandButton o un oggetto che funge da pulsante di comando. Per i controlli contenitore OLE, la proprietà Cancel è disponibile solo per gli oggetti che fungono specificatamente da pulsanti di comando.

Il pulsante Annulla può essere rappresentato da un solo controllo CommandButton nel form. Quando la proprietà Cancel viene impostata su True per un pulsante di comando, verrà impostata automaticamente su False per tutti gli altri oggetti del form. Quando la proprietà Cancel di un controllo CommandButton è impostata su True e il form è il form attivo, l'utente potrà scegliere il pulsante di comando facendo clic su di esso, premendo ESC oppure premendo INVIO quando lo stato attivo si trova sul pulsante.

La proprietà Cancel viene in genere utilizzata per consentire all'utente di annullare le modifiche non confermate e di ripristinare lo stato precedente del form.

Si consiglia di impostare il pulsante Annulla come pulsante predefinito nei form che supportano operazioni che non è possibile annullare (quali l'eliminazione). A tale scopo, impostare le proprietà Cancel e Default su True.


Proprietà CanPaste

Specifica se gli Appunti contengono dati supportati dall'oggetto.

Sintassi

oggetto.CanPaste

La sintassi della proprietà CanPaste è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Valori restituiti

I valori restituiti dalla proprietà CanPaste sono:

Valore	Descrizione
True	L'oggetto sul quale si trova il puntatore del mouse può ricevere le informazioni incollate dagli Appunti (impostazione predefinita).
False	L'oggetto sul quale si trova il puntatore del mouse non può ricevere le informazioni incollate dagli Appunti.
Osservazioni

La proprietà CanPaste è in sola lettura.

Se i dati degli Appunti hanno un formato non supportato dall'oggetto di destinazione corrente, la proprietà CanPaste è False. Se si tenta ad esempio di incollare una bitmap in un oggetto che supporta solo testo, la proprietà CanPaste sarà False.


Proprietà CanRedo

Indica se è possibile ripristinare l'ultima azione annullata.

Sintassi

oggetto.CanRedo

La sintassi della proprietà CanRedo è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Valori restituiti

I valori restituiti dalla proprietà CanRedo sono:

Valore	Descrizione
True	L'ultima azione annullata può essere ripristinata.
False	L'ultima azione annullata è irreversibile.
Osservazioni

La proprietà CanRedo è in sola lettura.

Ripetere un'azione significa ripristinare un'azione annullata che può non essere necessariamente l'ultima azione eseguita dall'utente.

In questo esempio viene illustrata una possibile sequenza di comandi Annulla e Ripeti:

1.	Modifica dell'impostazione di un pulsante di opzione.

2.	Immissione di testo in una casella di testo.

3.	Clic su Annulla. Il testo scompare dalla casella di testo.

4.	Clic su Annulla. Viene ripristinata l'impostazione precedente del pulsante di opzione.

5.	Clic su Ripeti. Il valore del pulsante di opzione viene modificato.

6.	Clic su Ripeti. Il testo viene rivisualizzato nella casella di testo.


Proprietà CanUndo

Indica se è possibile annullare l'ultima azione eseguita dall'utente.

Sintassi

oggetto.CanUndo

La sintassi della proprietà CanUndo è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Valori restituiti

I valori restituiti dalla proprietà CanUndo sono:

Valore	Descrizione
True	L'ultima azione eseguita dall'utente può essere annullata.
False	L'ultima azione eseguita dall'utente non può essere annullata.
Osservazioni

La proprietà CanUndo è in sola lettura.

Molte azioni eseguite dall'utente possono essere annullate tramite il comando Annulla. La proprietà CanUndo indica se l'ultima azione eseguita dall'utente può essere annullata.


Proprietà Caption

Testo descrittivo visualizzato su un oggetto per semplificarne l'identificazione.

Sintassi

oggetto.Caption [= String]

La sintassi della proprietà Caption è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Espressione stringa che definisce il testo da visualizzare come didascalia.
Impostazioni

L'impostazione predefinita per un controllo è rappresentata da un nome univoco basato sul tipo di controllo. CommandButton1, ad esempio, è la didascalia predefinita del primo pulsante di comando di un form.

Osservazioni

Il testo identifica o descrive l'oggetto al quale è associato. Per i pulsanti e le etichette, la proprietà Caption specifica il testo visualizzato nel controllo. Per gli oggetti Page e Tab, la proprietà specifica il testo visualizzato sulla linguetta della scheda.

Se la didascalia di un controllo è troppo lunga verrà troncata. Se la didascalia di un form è troppo lunga per la barra del titolo, il titolo verrà visualizzato seguito dai puntini di sospensione.

La proprietà ForeColor del controllo determina il colore del testo della didascalia.

Suggerimento  Se per un controllo sono disponibili entrambe le proprietà Caption e AutoSize, impostando AutoSize su True le dimensioni del controllo vengono adattate automaticamente alla lunghezza della didascalia.


Proprietà ClientHeight, ClientLeft, ClientTop e ClientWidth

Definiscono le dimensioni e la posizione dell'area di visualizzazione di un controllo TabStrip.

Sintassi

oggetto.ClientHeight [ =Single]

oggetto.ClientLeft [ =Single]

oggetto.ClientTop [ =Single]

oggetto.ClientWidth [ =Single]

La sintassi delle proprietà ClientHeight, ClientLeft, ClientTop e ClientWidth è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Single	Facoltativa. Per le proprietà ClientHeight e ClientWidth, specifica l'altezza o la larghezza, espressa in punti, dell'area di visualizzazione. Per le proprietà ClientLeft e ClientTop, specifica la distanza, espressa in punti, dal bordo superiore o sinistro del contenitore del controllo TabStrip.
Osservazioni

In fase di esecuzione, le proprietà ClientLeft, ClientTop, ClientHeight e ClientWidth memorizzano automaticamente le coordinate e le dimensioni dell'area interna del controllo TabStrip, condivisa dagli oggetti di TabStrip.


Proprietà Column

Specifica uno o più elementi in un controllo ListBox o ComboBox.

Sintassi

oggetto.Column( colonna, riga ) [= Variant]

La sintassi della proprietà Column è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
colonna	Facoltativa. Intero compreso in un intervallo da 0 al numero totale di colonne meno 1.
riga	Facoltativa. Intero compreso in un intervallo da 0 al numero totale di righe meno 1.
Variant	Facoltativa. Specifica un singolo valore, una colonna di valori o una matrice bidimensionale da caricare in un controllo ListBox o ComboBox.
Impostazioni

Se si specificano sia il valore della colonna che il valore della riga, la proprietà Column legge o scrive un elemento specifico.

Se si specifica solo il valore della colonna, la proprietà Column legge o scrive la colonna specificata nella riga corrente dell'oggetto. MyListBox.Column (3), ad esempio, legge o scrive la terza colonna di MyListBox.

La proprietà Column restituisce un valore Variant fornito dal cursore. Se il valore di Variant viene fornito da un cursore incorporato (ad esempio quando si utilizza il metodo AddItem), il valore sarà una stringa. Se il valore di Variant viene fornito da un cursore esterno, la formattazione associata ai dati non viene inclusa in Variant.

Osservazioni

È possibile utilizzare la proprietà Column per assegnare il contenuto di una casella combinata o casella di riepilogo a un altro controllo, quale una casella di testo. È ad esempio possibile impostare la proprietà ControlSource di una casella di testo sul valore contenuto nella seconda colonna di una casella di riepilogo.

Se l'utente non effettua alcuna selezione quando si fa riferimento a una colonna di una casella combinata o casella di riepilogo, l'impostazione della proprietà Column è Null. È possibile verificare questa condizione utilizzando la funzione IsNull.

È inoltre possibile utilizzare la proprietà Column per copiare in un controllo tutti i valori di una matrice bidimensionale. Questa sintassi consente di caricare rapidamente un elenco di opzioni, anziché utilizzare la proprietà AddItem per caricare un elemento alla volta.

Nota  Quando si copiano i dati da una matrice bidimensionale, la proprietà Column traspone il contenuto della matrice nel controllo, in modo che il contenuto di ListBox1.Column(X, Y) corrisponda a quello di MyArray(Y, X). Per copiare una matrice senza trasporla è possibile utilizzare la proprietà List.


Proprietà ColumnCount

Specifica il numero di colonne da visualizzare in una casella di riepilogo o in una casella combinata.

Sintassi

oggetto.ColumnCount [= Long]

La sintassi della proprietà ColumnCount è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Specifica il numero di colonne da visualizzare.
Osservazioni

Se si imposta su 3 la proprietà ColumnCount per una casella di riepilogo di un form relativo ai dipendenti, in una colonna possono essere elencati i cognomi, in un'altra colonna i nomi e nella terza colonna i numeri di codice dei dipendenti.

Se si imposta ColumnCount su 0, non vengono visualizzate le colonne, mentre se la si imposta su -1, vengono visualizzate tutte le colonne disponibili. Per una fonte dati non associata, il numero massimo di colonne consentite è 10 (da 0 a 9).

Per impostare la larghezza delle colonne visualizzate nel controllo, è possibile utilizzare la proprietà ColumnWidths.


Proprietà ColumnHeads

Visualizza una singola riga di intestazioni di colonna per caselle di riepilogo, caselle combinate e oggetti che supportano le intestazioni di colonna.

Sintassi

oggetto.ColumnHeads [= Boolean]

La sintassi della proprietà ColumnHeads è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Specifica se le intestazioni di colonna vengono visualizzate.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Visualizza le intestazioni di colonna.
False	Non visualizza le intestazioni di colonna (impostazione predefinita).
Le intestazioni vengono visualizzate nelle caselle combinate solo quando viene aperta l'elenco a discesa.

Osservazioni

Se il sistema utilizza la prima riga di dati come intestazioni di colonna, non sarà possibile selezionarli.


Proprietà ColumnWidths

Specifica la larghezza di ciascuna colonna in una casella combinata o casella di riepilogo a colonne multiple.

Sintassi

oggetto.ColumnWidths [= String]

La sintassi della proprietà ColumnWidths è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Imposta la larghezza della colonna espressa in punti. Se la larghezza viene impostata su -1 oppure non viene specificato alcun valore, la larghezza viene calcolata automaticamente. Se invece è 0, la colonna viene nascosta. Per specificare un'unità di misura diversa, includere l'unità di misura desiderata. Un valore maggiore di 0 specifica in modo esplicito la larghezza della colonna
Impostazioni

Per separare le voci della colonna, utilizzare il punto e virgola (;) come separatore di elenco oppure utilizzare il separatore di elenco specificato nella sezione Impostazioni internazionali del Pannello di controllo di Windows.

Qualsiasi impostazione della proprietà ColumnWidths può essere vuota. Per creare un'impostazione vuota, è sufficiente digitare un separatore di elenco non preceduto da alcun valore.

Se nella pagina delle proprietà si specifica -1, viene visualizzato un valore vuoto.

Per calcolare la larghezza delle colonne quando ColumnWidths è –1 oppure vuota, la larghezza del controllo viene suddivisa equamente tra tutte le colonne dell'elenco. Se la larghezza complessiva delle colonne specificate supera la larghezza del controllo, l'elenco viene allineato a sinistra all'interno del controllo e la colonna o le colonne situate all'estremità destra non verranno visualizzate. Per visualizzare queste colonne, scorrere l'elenco tramite la barra di scorrimento orizzontale.

La larghezza minima calcolata della colonna è 72 punti (2,54 cm, 1 pollice). Per ottenere colonne con una larghezza minore, è necessario specificare la larghezza desiderata in modo esplicito.

Se non diversamente specificato, la larghezza delle colonne viene misurata in punti. Per specificare un'altra unità di misura, è necessario includere le unità come parte dei valori. Nei seguenti esempi, la larghezza delle colonne viene specificata con unità di misura diverse e viene descritta la modifica automatica delle impostazioni in una casella di riepilogo a tre colonne con larghezza di 10 cm.

Impostazione	Risultato
90;72;90	La prima colonna è di 90 punti (3,17 cm), la seconda colonna è di 72 punti (2,54 cm) e la terza colonna è di 90 punti.
6 cm;0;6 cm	La prima colonna è di 6 centimetri, la seconda colonna è nascosta e la terza colonna è di 6 centimetri. Dal momento che della terza colonna è visibile solo una parte, è disponibile una barra di scorrimento orizzontale.
1,5 in;0;2,5 in	La prima colonna è di 1,5 pollici, la seconda colonna è nascosta e la terza colonna è di 2,5 pollici.
4 cm;;4 cm	La prima colonna è di 4 centimetri, la seconda colonna è di 2,54 centimetri (impostazione predefinita) e la terza colonna è di 4 centimetri. Dal momento che della terza colonna è visibile solo la metà, è disponibile una barra di scorrimento orizzontale.
(Vuoto)	Le tre colonne sono di larghezza uguale (3,33 cm).
Osservazioni

In una casella combinata, la colonna designata dalla proprietà TextColumn viene visualizzata automaticamente nell'area di immissione del testo del controllo.


Proprietà ControlSource

Identifica la posizione dei dati utilizzata per impostare o memorizzare la proprietà Value di un controllo.

Sintassi

oggetto.ControlSource [= String]

La sintassi della proprietà ControlSource è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Specifica la cella del foglio di lavoro collegata alla proprietà Value di un controllo.
Osservazioni

La proprietà ControlSource identifica una cella o un campo e non include i dati memorizzati nella cella o campo. Le modifiche alla proprietà Value del controllo vengono riportate nella cella o campo collegati. In modo analogo, le modifiche al valore della cella o del campo collegati, vengono automaticamente riportate nella proprietà Value del controllo.

Non è possibile specificare un altro controllo per la proprietà ControlSource. Questa operazione genera infatti un errore.

Il valore predefinito di ControlSource è una stringa vuota. I valori della proprietà diversi da una stringa vuota identificano una cella o un campo collegati. Quando si carica il controllo, il contenuto della cella o del campo viene automaticamente copiato nella proprietà Value.

Nota  Se la proprietà Value è Null, nella posizione identificata da ControlSource non viene visualizzato alcun valore.


Proprietà ControlTipText

Specifica la descrizione visualizzata quando l'utente posiziona il puntatore del mouse su un controllo senza fare clic.

Sintassi

oggetto.ControlTipText [= String]

La sintassi della proprietà ControlTipText è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Descrizione visualizzata quando l'utente posiziona il puntatore del mouse su un controllo.
Osservazioni

La proprietà ControlTipText consente di visualizzare descrizioni relative a un controllo in un form in esecuzione. La proprietà può essere impostata in fase di progettazione, ma appare nel controllo solo in fase di esecuzione.

Il valore predefinito di ControlTipText è una stringa vuota. Se ControlTipText è impostata su una stringa vuota, per il controllo non viene visualizzata alcuna descrizione.


Proprietà Count

Restituisce il numero di oggetti di un insieme.

Sintassi

oggetto.Count

La sintassi della proprietà Count è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

La proprietà Count è in sola lettura.

Si noti che il valore di indice per la prima pagina o scheda di un insieme è 0, il valore della seconda pagina o scheda è 1 e così via. Se un controllo MultiPage contiene ad esempio due pagine, gli indici delle singole pagine sono 0 e 1 e il valore di Count è 2.


Proprietà CurLine

Specifica la riga corrente di un controllo.

Sintassi

oggetto.CurLine [= Long]

La sintassi della proprietà CurLine è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Specifica la riga corrente di un controllo.
Osservazioni

La riga corrente di un controllo è la riga che contiene il punto di inserimento. Il numero della prima riga è zero.

La proprietà CurLine è valida quando lo stato attivo si trova sul controllo.


Proprietà CurTargetX

Recupera la posizione orizzontale preferita del punto di inserimento in un controllo TextBox a righe multiple o ComboBox.

Sintassi

oggetto.CurTargetX

La sintassi della proprietà CurTargetX è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Valori restituiti

La proprietà CurTargetX recupera la posizione preferita espressa in unità Himetric. Un'unità Himetric equivale a 0,0001 metri.

Osservazioni

La posizione di destinazione è relativa al bordo sinistro del controllo. Se la lunghezza di una riga è minore del valore della proprietà CurTargetX, è possibile posizionare il punto di inserimento alla fine della riga. Il valore di CurTargetX varia quando l'utente imposta il punto di inserimento o quando viene impostata la proprietà CurX. La proprietà CurTargetX è di sola lettura.

Il valore restituito è valido quando lo stato attivo si trova sull'oggetto.

È possibile utilizzare le proprietà CurTargetX e CurX per spostare il punto di inserimento man mano che l'utente scorre il contenuto di un controllo TextBox o ComboBox a righe multiple. Quando l'utente sposta il punto di inserimento su un'altra riga di testo scorrendo il contenuto dell'oggetto, CurTargetX specifica la posizione preferita per il punto di inserimento. CurX viene impostata su questo valore se la lunghezza della riga di testo è maggiore del valore di CurTargetX. In caso contrario, CurX viene impostata sulla fine della riga di testo.


Proprietà CurX

Specifica la posizione orizzontale corrente del punto di inserimento in un controllo TextBox o ComboBox a righe multiple.

Sintassi

oggetto.CurX [= Long]

La sintassi della proprietà CurX è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Indica la posizione corrente, espressa in unità Himetric. Un'unità Himetric equivale a 0,0001 metri.
Osservazioni

La proprietà CurX si applica a un controllo TextBox o ComboBox a righe multiple. Il valore restituito è valido quando lo stato attivo si trova sull'oggetto.

È possibile utilizzare le proprietà CurTargetX e CurX per spostare il punto di inserimento man mano che l'utente scorre il contenuto di un controllo TextBox o ComboBox a righe multiple. Quando l'utente sposta il punto di inserimento su un'altra riga di testo scorrendo il contenuto dell'oggetto, CurTargetX specifica la posizione preferita per il punto di inserimento. CurX viene impostata su questo valore se la lunghezza della riga di testo è maggiore del valore di CurTargetX. In caso contrario, CurX viene impostata sulla fine della riga di testo.


Proprietà Cycle

Specifica l'azione da eseguire quando l'utente esce dall'ultimo controllo di un controllo Frame o di un oggetto Page.

Sintassi

oggetto.Cycle [= fmCycle]

La sintassi della proprietà Cycle è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmCycle	Facoltativa. Specifica se lo spostamento tra i controlli viene eseguito nei controlli nidificati in un controllo Frame o MultiPage.
Impostazioni

Le possibili impostazioni di fmCycle sono:

Costante	Valore	Descrizione
fmCycleAllForms	0	Esegue uno spostamento ciclico tra i controlli del form e i controlli dei controlli Frame e MultiPage visualizzati nel form.
fmCycleCurrentForm	2	Esegue uno spostamento ciclico tra i controlli del form oppure del controllo Frame o MultiPage. Lo stato attivo rimane all'interno del form, del controllo Frame o MultiPage fino a quando non viene impostato esplicitamente su un controllo all'esterno del form oppure del controllo Frame o MultiPage.
Se si specifica per Cycle un valore non intero, questo viene arrotondato all’intero più vicino.

Osservazioni

L'ordine di tabulazione identifica l'ordine in cui i controlli ricevono lo stato attivo man mano che l'utente si sposta con TAB all'interno di un form o di un form secondario. La proprietà Cycle determina l'azione da eseguire quando l'utente preme TAB nell'ultimo controllo dell'ordine di tabulazione.

L'impostazione fmCycleAllForms trasferisce lo stato attivo sul primo controllo del successivo controllo Frame o MultiPage nel form, quando l'utente preme TAB nell'ultimo controllo dell'ordine di tabulazione.

L'impostazione fmCycleCurrentForm trasferisce lo stato attivo sul primo controllo dello stesso form, controllo Frame o MultiPage, quando l'utente preme TAB nell'ultimo controllo dell'ordine di tabulazione.


Proprietà Default

Specifica il pulsante di comando predefinito in un form.

Sintassi

oggetto.Default [= Boolean]

La sintassi della proprietà Default è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se il pulsante di comando è il pulsante predefinito.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il controllo CommandButton è il pulsante predefinito.
False	Il controllo CommandButton non è il pulsante predefinito (impostazione predefinita).
Osservazioni

È possibile impostare come pulsante di comando predefinito un controllo CommandButton o un oggetto che funge da pulsante di comando. Un solo oggetto in un form può essere il pulsante di comando predefinito. L'impostazione della proprietà Default su True per un oggetto comporta l'impostazione automatica della proprietà Default su False per tutti gli altri oggetti del form.

Per scegliere il pulsante di comando predefinito in un form attivo, l'utente può fare clic sul pulsante o premere INVIO se lo stato attivo non si trova su un altro controllo CommandButton. Se si preme INVIO quando nessun altro controllo CommandButton ha lo stato attivo, viene inoltre generato l'evento KeyUp per il pulsante di comando predefinito.

La proprietà Default è disponibile per i controlli contenitore OLE che fungono specificatamente da controlli CommandButton.

Suggerimento  Si consiglia di impostare il pulsante Annulla come pulsante predefinito nei form che supportano operazioni che non è possibile annullare (quali l'eliminazione). A tale scopo, impostare le proprietà Default e Cancel su True.


Proprietà Delay

Specifica l'intervallo tra gli eventi SpinUp, SpinDown e Change in un controllo SpinButton o ScrollBar.

Sintassi

oggetto.Delay [= Long]

La sintassi della proprietà Delay è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Intervallo tra gli eventi, espresso in millisecondi.
Osservazioni

La proprietà Delay ha effetto sull'intervallo di tempo tra gli eventi consecutivi SpinUp, SpinDown e Change generati quando l'utente fa clic e tiene premuto un pulsante in un controllo SpinButton o ScrollBar. Il primo evento viene generato immediatamente. L'intervallo che trascorre prima della seconda occorrenza dell'evento è cinque volte il valore della proprietà Delay specificata. Questo scarto iniziale consente di generare un singolo evento anziché una serie di eventi.

Dopo lo scarto iniziale, l'intervallo tra gli eventi è il valore specificato per Delay.

Il valore predefinito di Delay è 50 millisecondi. L'oggetto inizializza quindi il primo evento dopo 250 millisecondi (5 volte il valore specificato) e ciascun evento successivo dopo 50 millisecondi.


Proprietà DragBehavior

Specifica se il sistema attiva la funzione di trascinamento della selezione per un controllo TextBox o ComboBox.

Sintassi

oggetto.DragBehavior [= fmDragBehavior]

La sintassi della proprietà DragBehavior è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmDragBehavior	Facoltativa. Specifica se la funzione di trascinamento della selezione è attivata.
Impostazioni

Le possibili impostazioni di fmDragBehavior sono:

Costante	Valore	Descrizione
fmDragBehaviorDisabled	0	Il trascinamento della selezione è disattivato (impostazione predefinita).
fmDragBehaviorEnabled	1	Il trascinamento della selezione è attivato.
Osservazioni

Se la proprietà DragBehavior è attivata, il trascinamento in una casella di testo o in una casella combinata avvia un'operazione di trascinamento della selezione per il testo selezionato. Se la proprietà DragBehavior è disattivata, il trascinamento in una casella di testo o in una casella combinata esegue la selezione del testo.

L'elenco a discesa di un controllo ComboBox non supporta il trascinamento della selezione, né la selezione di elementi dell’elenco all’interno del testo.

La proprietà DragBehavior non ha alcun effetto su un controllo ComboBox la cui proprietà Style è impostata su fmStyleDropDownList.

Nota  È possibile associare gli effetti delle proprietà EnterFieldBehavior e DragBehavior per creare vari stili di caselle di testo.


Proprietà DrawBuffer

Indica il numero di pixel riservati per la memoria fuori schermo nella riproduzione di cornici.

Sintassi

oggetto.DrawBuffer [= valore]

La sintassi della proprietà DrawBuffer è composta dalla seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di oggetto valido.
valore	Intero compreso tra 16.000 e 1.048.576 pari al numero massimo di pixel che l’oggetto può riprodurre fuori schermo.
Osservazioni

La proprietà DrawBuffer indica il numero massimo di pixel che possono essere disegnati in una sola volta durante l’aggiornamento dello schermo. La quantità di memoria utilizzata dall’oggetto dipende dalla risoluzione dello schermo. Se per la proprietà DrawBuffer si imposta un valore elevato, le prestazioni risulteranno rallentate. Un buffer di grandi dimensioni risulta utile solo nel caso di più immagini di grandi dimensioni sovrapposte.

Per impostare il valore della proprietà DrawBuffer, utilizzare la finestra Proprietà.


Proprietà DropButtonStyle

Specifica il simbolo visualizzato sul pulsante di apertura di un controllo ComboBox.

Sintassi

oggetto.DropButtonStyle [= fmDropButtonStyle]

La sintassi della proprietà DropButtonStyle è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmDropButtonStyle	Facoltativa. Aspetto del pulsante di apertura.
Impostazioni

Le possibili impostazioni di fmDropButtonStyle sono:

Costante	Valore	Descrizione
fmDropButtonStylePlain	0	Visualizza un pulsante normale, senza simbolo.
fmDropButtonStyleArrow	1	Visualizza una freccia rivolta verso il basso (impostazione predefinita).
fmDropButtonStyleEllipsis	2	Visualizza i puntini di sospensione (...).
fmDropButtonStyleReduce	3	Visualizza una riga orizzontale simile a un carattere di sottolineatura.
Osservazioni

L'impostazione consigliata per la visualizzazione degli elementi di un elenco è fmDropButtonStyleArrow. Se si desidera utilizzare il pulsante di apertura in un altro modo, ad esempio per visualizzare una finestra di dialogo, specificare fmDropButtonStyleEllipsis, fmDropButtonStylePlain o fmDropButtonStyleReduce e intercettare l'evento DropButtonClick.


Proprietà Enabled

Specifica se un controllo può ricevere lo stato attivo e rispondere agli eventi generati dall'utente.

Sintassi

oggetto.Enabled [= Boolean]

La sintassi della proprietà Enabled è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se l'oggetto è in grado di rispondere agli eventi generati dall'utente.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il controllo può ricevere lo stato attivo, è in grado di rispondere agli eventi generati dall'utente ed è accessibile tramite il codice (impostazione predefinita).
False	L'utente non può utilizzare il controllo tramite il mouse, sequenze di tasti, tasti di scelta. Il controllo è comunque accessibile in genere tramite il codice.
Osservazioni

Utilizzare la proprietà Enabled per attivare e disattivare i controlli. Un controllo disattivato ha luminosità ridotta rispetto a un controllo attivato. Se sul controllo disattivato è visualizzata una bitmap, anche la bitmap sarà a luminosità ridotta. Se per un controllo Image la proprietà Enabled è False, il controllo non genera eventi, ma non è a luminosità ridotta.

La proprietà Enabled può essere utilizzata insieme alla proprietà Locked per ottenere i seguenti risultati:

•	Se Enabled e Locked sono True, il controllo può ricevere lo stato attivo e ha un aspetto normale (non a luminosità ridotta) nel form. L'utente potrà copiare, ma non modificare, i dati nel controllo.

•	Se Enabled è True e Locked è False, il controllo può ricevere lo stato attivo e ha un aspetto normale nel form. L'utente potrà copiare e modificare i dati nel controllo.

•	Se Enabled è False e Locked è True, il controllo non può ricevere lo stato attivo e appare a luminosità ridotta. L'utente non potrà copiare né modificare i dati nel controllo.

•	Se Enabled e Locked sono False, il controllo non può ricevere lo stato attivo e appare a luminosità ridotta nel form. L'utente non potrà copiare né modificare i dati nel controllo.

È possibile associare le impostazioni delle proprietà Enabled e TabStop per impedire all'utente di selezionare un pulsante di comando premendo TAB anche se sarà comunque possibile fare clic sul pulsante. Se si imposta TabStop su False, il pulsante di comando non sarà incluso nell'ordine di tabulazione. Se Enabled è True, l'utente potrà comunque fare clic sul pulsante di comando, a condizione che TakeFocusOnClick sia impostata su True.

Quando l'utente si sposta con TAB in un controllo MultiPage o TabStrip attivato, la prima pagina o scheda del controllo riceve lo stato attivo. Se la prima pagina o scheda di un controllo MultiPage o TabStrip è disattivata, la prima pagina o scheda attivata di tale controllo riceve lo stato attivo. Se tutte le pagine o schede di un controllo MultiPage o TabStrip sono disattivate, il controllo è disattivato e non può ricevere lo stato attivo.

Nel caso di un controllo Frame disattivato, tutti i controlli in esso contenuti sono disattivati.

Facendo clic su un controllo ListBox disattivato, non viene generato l’evento Click.


Proprietà EnterFieldBehavior

Specifica la modalità di selezione adottata quando si accede a un controllo TextBox o ComboBox.

Sintassi

oggetto.EnterFieldBehavior [= fmEnterFieldBehavior]

La sintassi della proprietà EnterFieldBehavior è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmEnterFieldBehavior	Facoltativa. Modalità di selezione desiderata.
Impostazioni

Le possibili impostazioni di fmEnterFieldBehavior sono:

Costante	Valore	Descrizione
fmEnterFieldBehaviorSelectAll	0	Seleziona l'intero contenuto dell'area di modifica quando si accede al controllo (impostazione predefinita).
fmEnterFieldBehaviorRecallSelection	1	Mantiene invariata la selezione. Viene ripristinato il tipo di selezione attivo in occasione dell'ultima attivazione del controllo.
Osservazioni

La proprietà EnterFieldBehavior controlla la modalità di selezione quando l’utente preme TAB per spostarsi su un controllo, non quando il controllo riceve lo stato attivo in seguito all’applicazione del metodo SetFocus. Con tale metodo il contenuto del controllo non viene selezionato e il punto di inserimento appare dopo l’ultimo carattere nell’area di modifica del controllo.


Proprietà EnterKeyBehavior

Definisce l'effetto della pressione del tasto INVIO in un controllo TextBox.

Sintassi

oggetto.EnterKeyBehavior [= Boolean]

La sintassi della proprietà EnterKeyBehavior è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Specifica l'effetto della pressione del tasto INVIO.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Premendo INVIO viene creata una nuova riga.
False	Premendo INVIO lo stato attivo viene spostato sull'oggetto successivo nell'ordine di tabulazione (impostazione predefinita).
Osservazioni

Le proprietà EnterKeyBehavior e MultiLine sono strettamente correlate. I valori descritti sopra sono validi solo se MultiLine è True. Se MultiLine è False, la pressione di INVIO comporta sempre lo spostamento dello stato attivo sul controllo successivo nell'ordine di tabulazione, indipendentemente dal valore di EnterKeyBehavior.

Anche le operazioni eseguite dopo che è stato premuto CTRL+INVIO dipendono dal valore della proprietà MultiLine. Se MultiLine è True, premendo CTRL+INVIO viene creata una nuova riga, indipendentemente dal valore di EnterKeyBehavior. Se MultiLine è False, la pressione di CTRL+INVIO non ha effetto.


Proprietà ForeColor

Specifica il colore di primo piano di un oggetto.

Sintassi

oggetto.ForeColor [= Long]

La sintassi della proprietà ForeColor è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Valore o costante che determina il colore di primo piano di un oggetto.
Impostazioni

È possibile utilizzare qualsiasi valore intero che rappresenta un colore valido. È inoltre possibile specificare un colore utilizzando la funzione RGB con i componenti rosso, verde e blu. Il valore di ciascun componente del colore è un intero compreso tra 0 e 255. È ad esempio possibile specificare il colore verde acqua come il valore intero 4966415 oppure come una combinazione dei colori rosso, verde e blu ovvero 15, 200 e 75.

Osservazioni

Utilizzare la proprietà ForeColor per rendere più leggibili i controlli dei form o per identificarli in modo più chiaro. Se ad esempio una casella di testo contiene il numero di unità a magazzino, è possibile impostare la proprietà in modo che il colore del testo venga modificato quando il valore diventa inferiore a quello impostato come quantità minima a magazzino.

Per un controllo ScrollBar o SpinButton, la proprietà ForeColor imposta il colore delle frecce. Per un controllo Frame, ForeColor modifica il colore della didascalia. Per un oggetto Font, ForeColor determina il colore del testo.


Proprietà GroupName

Crea un gruppo di controlli OptionButton che si escludono reciprocamente.

Sintassi

oggetto.GroupName [= Stringa]

La sintassi della proprietà GroupName è composta dalla seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Controllo OptionButton valido.
Stringa	Facoltativa. Nome del gruppo che include il controllo OptionButton. Deve essere uguale per tutti i pulsanti del gruppo. L’impostazione predefinita è una stringa vuota.
Osservazioni

Per creare un gruppo di controlli OptionButton che si escludono reciprocamente, è possibile inserire i pulsanti in un controllo Frame del form oppure utilizzare la proprietà GroupName. Questo secondo metodo risulta più efficiente in quanto:

•	Non è necessario includere un controllo Frame per ciascun gruppo. Se non si utilizza un controllo Frame, il numero di controlli sul form è minore. Ciò comporta un miglioramento delle prestazioni e una riduzione delle dimensioni del form.

•	Si avrà più flessibilità in fase di progettazione. Se si utilizza un controllo Frame, tutti i pulsanti devono essere inclusi all’interno del controllo e, se si desidera utilizzare più gruppi, è necessario inserire un controllo Frame per ciascun gruppo. Se invece si utilizza la proprietà GroupName, i pulsanti di opzione del gruppo possono essere inseriti in qualsiasi punto del form. Se si desidera utilizzare più gruppi, è necessario specificare un nome univoco per ciascun gruppo. È comunque possibile inserire i singoli controlli in qualsiasi punto del form.

•	È possibile creare pulsanti con sfondi trasparenti, che consentono di migliorare l’aspetto del form. Il controllo Frame non è trasparente.

Indipendentemente dal metodo utilizzato, facendo clic su un pulsante del gruppo tutti gli altri pulsanti del gruppo vengono automaticamente impostati su False. I pulsanti di opzione con proprietà GroupName uguale all’interno di un singolo contenitore si escludono reciprocamente. È possibile utilizzare lo stesso nome di gruppo in due contenitori, anche se con questa operazione vengono creati due gruppi (uno in ciascun contenitore) anziché un gruppo contenente entrambi i contenitori.

Si supponga ad esempio che un form includa alcuni pulsanti di opzione e un controllo MultiPage contenente a sua volta pulsanti di opzione. In questo caso i pulsanti del controllo MultiPage rappresentano un gruppo, mentre quelli del form rappresentano un secondo gruppo. Ciascuno dei due gruppi non ha alcun effetto sull’altro, ovvero la modifica dell’impostazione di un pulsante del controllo MultiPage non influisce sui pulsanti del form.


Proprietà Height e Width

L'altezza o la larghezza, espressa in punti, di un oggetto.

Sintassi

oggetto.Height [= Single]

oggetto.Width [= Single]

La sintassi delle proprietà Height e Width è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Single	Facoltativa. Espressione numerica che specifica le dimensioni di un oggetto.
Osservazioni

Le proprietà Height e Width vengono aggiornate automaticamente quando si sposta o si ridimensiona un controllo. Se si modificano le dimensioni di un controllo, la proprietà Height o Width memorizza la nuova altezza o larghezza, mentre la proprietà OldHeight o OldWidth memorizza l'altezza o la larghezza precedente. Se l'impostazione specificata per la proprietà Left o Top è inferiore a zero, tale valore verrà utilizzato per calcolare l'altezza o la larghezza del controllo, ma una parte del controllo non sarà visibile nel form.

Se si sposta un controllo all'interno di un form, l'impostazione della proprietà Height o Width viene modificata solo se contemporaneamente si ridimensiona il controllo. Le impostazioni delle proprietà Left e Top del controllo verranno modificate automaticamente, in modo da riflettere la nuova posizione del controllo in relazione ai bordi del form che lo contiene.

È necessario che il valore assegnato alla proprietà Height o Width sia maggiore o uguale a zero. Per la maggior parte dei sistemi, l'intervallo di valori consigliato va da 0 a +32.767. È tuttavia possibile che siano validi anche valori maggiori, a seconda della configurazione del sistema in uso.


Proprietà HelpContextID

Associa un argomento specifico di un file personalizzato della Guida di Microsoft Windows a un controllo specifico.

Sintassi

oggetto.HelpContextID [= Long]

La sintassi della proprietà HelpContextID è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Numero intero positivo che specifica l'ID di contesto di un argomento del file della Guida associato all'oggetto. Zero indica che nessun argomento della Guida è associato all'oggetto (impostazione predefinita). È necessario che sia un ID di contesto valido nel file della Guida specificato.
Osservazioni

L'argomento identificato dalla proprietà HelpContextID è disponibile per gli utenti quando il form è in esecuzione. Per visualizzare l'argomento, è necessario che l'utente selezioni il controllo o vi sposti lo stato attivo e quindi prema F1.

La proprietà HelpContextID fa riferimento a un argomento di un file personalizzato della Guida creato per descrivere un determinato form o un'applicazione. In Visual Basic, il file personalizzato della Guida è una proprietà del progetto.


Proprietà HideSelection

Specifica se il testo selezionato rimane evidenziato anche quando lo stato attivo non si trova sul relativo controllo.

Sintassi

oggetto.HideSelection [= Boolean]

La sintassi della proprietà HideSelection è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se il testo selezionato rimane evidenziato anche quando lo stato attivo non si trova sul relativo controllo.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il testo selezionato è evidenziato solo se lo stato attivo si trova sul relativo controllo (impostazione predefinita).
False	Il testo selezionato appare sempre evidenziato.
Osservazioni

È possibile utilizzare la proprietà HideSelection per mantenere evidenziato il testo quando un altro form o un'altra finestra di dialogo ricevono lo stato attivo, ad esempio durante il controllo ortografico.


Proprietà IMEMode

Specifica la modalità di esecuzione predefinita dell'Input Method Editor (IME) per un controllo. Questa proprietà viene utilizzata solo nelle applicazioni scritte per i paesi dell'Estremo oriente, mentre viene ignorata nelle altre applicazioni.

Sintassi

oggetto.IMEMode [= fmIMEMode]

La sintassi della proprietà IMEMode è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmIMEMode	Facoltativa. Modalità di esecuzione dell'Input Method Editor (IME).
Impostazioni

Le possibili impostazioni di fmIMEMode sono:

Costante	Valore	Descrizione
fmIMEModeNoControlp	0	Non controlla l'IME (impostazione predefinita).
fmIMEModeOn	1	IME attivato.
fmIMEModeOff	2	IME disattivato. Modalità inglese.
fmIMEModeDisable	3	IME disattivato. L'utente non può attivare l'IME tramite la tastiera.
fmIMEModeHiragana	4	IME attivato con modalità Hiragana a tutta larghezza.
fmIMEModeKatakana	5	IME attivato con modalità Katakana  a tutta larghezza.
fmIMEModeKatakanaHalf	6	IME attivato con modalità Katakana a metà larghezza.
fmIMEModeAlphaFull	7	IME attivato con modalità alfanumerica a tutta larghezza.
fmIMEModeAlpha	8	IME attivato con modalità alfanumerica a metà larghezza.
fmIMEModeHangulFull	9	IME attivato con modalità Hangul a tutta larghezza.
fmIMEModeHangul	10	IME attivato con modalità Hangul a metà larghezza.
L'impostazione fmIMEModeNoControl indica che la modalità dell'IME non viene modificata quando il controllo riceve lo stato attivo in fase di esecuzione. Per qualsiasi altro valore, la modalità dell'IME è impostata sul valore specificato dalla proprietà IMEMode quando il controllo riceve lo stato attivo in fase di esecuzione.

Osservazioni

È possibile impostare la modalità di esecuzione dell'IME in due modi: tramite la barra degli strumenti dell'IME oppure utilizzando la proprietà IMEMode di un controllo che imposta o restituisce la modalità corrente dell'IME. Questa proprietà consente il controllo dinamico dell'IME tramite il codice.

Nel seguente esempio viene illustrata l'interazione della proprietà IMEMode con la barra degli strumenti dell'IME. Si supponga di aver progettato un form contenente i controlli TextBox1 e CheckBox1 e che TextBox1.IMEMode sia uguale a 0, mentre CheckBox1.IMEMode sia uguale a 1. In modalità progettazione, l'IME è stato impostato sulla modalità 2 tramite la barra degli strumenti.

Quando si esegue il form, l'IME viene generato in modalità 2. Se si fa clic su TextBox1, la modalità dell'IME non viene modificata, dal momento che la proprietà IMEMode per questo controllo è 0. Se si fa clic su CheckBox1, l'IME passa alla modalità 1, dal momento che la proprietà IMEMode per questo controllo è 1. Se si fa di nuovo clic su TextBox1, l'IME rimane in modalità 1 (IMEMode è 0 e quindi l'IME mantiene l'ultima impostazione).

È tuttavia possibile ignorare la proprietà IMEMode. Si supponga, ad esempio, che facendo clic su CheckBox1, l'IME passi alla modalità 1, come definito dalla proprietà IMEMode per il controllo CheckBox. Se quindi si utilizza la barra degli strumenti dell'IME per impostare l'IME sulla modalità 3, l'IME verrà impostato sulla modalità 3 quando si fa clic sul controllo. In questo modo, non viene modificato il valore della proprietà, che viene quindi ignorata fino alla successiva esecuzione del form.


Proprietà Index

Specifica la posizione di un oggetto Tab all'interno di un insieme Tabs o di un oggetto Page in un insieme Pages.

Sintassi

oggetto.Index [= Integer]

La sintassi della proprietà Index è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Integer	Facoltativa. Indice dell'oggetto Tab selezionato.
Osservazioni

La proprietà Index specifica l'ordine di visualizzazione delle schede. La modifica del valore della proprietà Index comporta la modifica visiva dell'ordine delle pagine in un controllo MultiPage o delle schede in un controllo TabStrip. Il valore di indice della prima pagina o scheda è 0, il valore di indice della seconda pagina o scheda è 1 e così via.

In un controllo MultiPage, la proprietà Index fa riferimento a un oggetto Page o a un oggetto Tab della pagina. In un controllo TabStrip, la proprietà Index fa riferimento esclusivamente alla scheda.


Proprietà InsideHeight e InsideWidth

La proprietà InsideHeight restituisce l'altezza, espressa in punti, dell'area client all'interno di un form, mentre la proprietà InsideWidth ne restituisce la larghezza.

Sintassi

oggetto.InsideHeight

oggetto.InsideWidth

La sintassi delle proprietà InsideHeight e InsideWidth è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Le proprietà InsideHeight e InsideWidth sono in sola lettura. Se nell'area è inclusa una barra di scorrimento, il valore restituito non include l'altezza o la larghezza della barra di scorrimento.


Proprietà IntegralHeight

Indica se un controllo ListBox o TextBox visualizza in un elenco righe di testo complete o parziali.

Sintassi

oggetto.IntegralHeight [= Boolean]

La sintassi della proprietà IntegralHeight è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se nell'elenco vengono visualizzate righe di testo parziali.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	L'elenco viene ridimensionato automaticamente per visualizzare solo elementi completi (impostazione predefinita).
False	L'elenco non viene ridimensionato automaticamente anche se l'altezza dell'elemento non ne consente la visualizzazione completa.
Osservazioni

La proprietà IntegralHeight è correlata all'altezza dell'elenco, mentre la proprietà AutoSize è correlata alla larghezza dell'elenco.

Se IntegralHeight è True, la casella di riepilogo viene ridimensionata automaticamente per visualizzare le righe complete. Se è False, la dimensione dell'elenco rimane fissa. In questo caso, se l'elemento è di altezza maggiore rispetto allo spazio disponibile nell'elenco, non viene visualizzato completamente.


Proprietà TakeFocusOnClick

Specifica se un controllo riceve lo stato attivo quando si fa clic su di esso.

Sintassi

oggetto.TakeFocusOnClick [= Boolean]

La sintassi della proprietà TakeFocusOnClick è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se un controllo riceve lo stato attivo quando si fa clic su di esso.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il pulsante riceve lo stato attivo quando si fa clic su di esso (impostazione predefinita).
False	Il pulsante non riceve lo stato attivo quando si fa clic su di esso.
Osservazioni

La proprietà TakeFocusOnClick specifica solo se un controllo riceve lo stato attivo quando l'utente fa clic su di esso. Se l'utente si sposta su un controllo premendo TAB, esso riceverà comunque lo stato attivo, indipendentemente dal valore della proprietà TakeFocusOnClick.

Utilizzare questa proprietà per eseguire azioni relative a un controllo senza spostare lo stato attivo dal controllo. Si supponga, ad esempio, che il form includa un controllo TextBox e un controllo CommandButton che consente di eseguire il controllo ortografico del testo. Si desidera quindi selezionare il testo nel controllo TextBox, fare clic sul controllo CommandButton ed eseguire il controllo ortografico senza spostare lo stato attivo dal controllo TextBox. A tale scopo, è possibile impostare la proprietà TakeFocusOnClick del controllo CommandButton su False.


Proprietà KeepScrollBarsVisible

Specifica se le barre di scorrimento restano visibili quando non sono necessarie.

Sintassi

oggetto.KeepScrollBarsVisible [= fmScrollBars]

La sintassi della proprietà KeepScrollBarsVisible è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmScrollBars	Facoltativa. Indica la posizione di visualizzazione delle barre di scorrimento.
Impostazioni

Le possibili impostazioni di fmScrollBars sono:

Costante	Valore	Descrizione
fmScrollBarsNone	0	Non visualizza le barre di scorrimento.
fmScrollBarsHorizontal	1	Visualizza una barra di scorrimento orizzontale.
fmScrollBarsVertical	2	Visualizza una barra di scorrimento verticale.
fmScrollBarsBoth	3	Visualizza sia la barra di scorrimento orizzontale che quella verticale (impostazione predefinita).
Osservazioni

Se l’area visibile è sufficiente per visualizzare tutti i controlli di un oggetto quale un oggetto Page o un form, le barre di scorrimento non sono necessarie. La proprietà KeepScrollBarsVisible determina se le barre di scorrimento restano visibili anche quando non sono necessarie.

Se le barre di scorrimento sono visibili quando non sono necessarie, vengono visualizzate con dimensioni normali, e la casella di scorrimento occupa interamente la barra di scorrimento corrispondente.


Proprietà LargeChange

Specifica l'entità dello spostamento che viene eseguito quando l’utente fa clic tra la casella di scorrimento e la freccia di scorrimento.

Sintassi

oggetto.LargeChange [= Long]

La sintassi della proprietà LargeChange è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Numero intero che specifica l'entità della modifica apportata alla proprietà Value.
Osservazioni

La proprietà LargeChange è valida solo per il controllo ScrollBar, non per le barre di scorrimento di altri controlli, quali TextBox o ComboBox.

Il valore della proprietà LargeChange corrisponde al valore in base al quale la proprietà Value di ScrollBar cambia quando l’utente fa clic sull’area compresa tra la casella di scorrimento e la freccia di scorrimento. Lo spostamento ha sempre luogo verso il punto in cui l’utente fa clic. In un oggetto ScrollBar orizzontale, ad esempio, se si fa clic a sinistra della casella di scorrimento, questa verrà spostata verso sinistra. In un oggetto ScrollBar verticale, se si fa clic al di sopra della casella di scorrimento, questa verrà spostata verso l’alto.

LargeChange non prevede unità di misura. Qualsiasi numero intero costituisce un’impostazione valida: i valori consigliati sono compresi tra –32.767 e +32.767; il valore deve essere compreso tra i valori delle proprietà Max e Min di ScrollBar.


Proprietà LayoutEffect

Specifica se un controllo è stato spostato durante una modifica di layout.

Sintassi

oggetto.LayoutEffect

La sintassi della proprietà LayoutEffect è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Valori restituiti

I valori restituiti dalla proprietà LayoutEffect sono:

Costante	Valore	Descrizione
fmLayoutEffectNone	0	Il controllo non è stato spostato.
fmLayoutEffectInitiate	1	Il controllo è stato spostato.
Osservazioni

La proprietà LayoutEffect è in sola lettura e può essere utilizzata solo nella routine di eventi Layout. L’evento Layout viene inizializzato dal metodo Move se l’argomento Layout è True.

L’evento Layout non viene inizializzato quando si modificano le impostazioni delle proprietà Left, Top, Height o Width di un controllo.

L’evento Layout imposta LayoutEffect per ciascun controllo coinvolto in un’operazione di spostamento. Se ad esempio è stato spostato un gruppo di controlli, la proprietà LayoutEffect viene impostata per ciascun controllo.


Proprietà Left e Top

Distanza tra un controllo e il bordo superiore o sinistro del form che lo contiene.

Sintassi

oggetto.Left [= Single]

oggetto.Top [= Single]

La sintassi delle proprietà Left e Top è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Single	Facoltativa. Espressione numerica che specifica le coordinate di un oggetto.
Impostazioni

Se la proprietà Left o Top viene impostata su 0, il bordo del controllo verrà posizionato in corrispondenza del margine sinistro o superiore del contenitore.

Osservazioni

Per la maggior parte dei sistemi, l’intervallo di valori consigliato per Left e Top è compreso tra -32.767 e +32.767. A seconda della configurazione del sistema, possono risultare validi anche altri valori. Per un controllo ComboBox, i valori Left e Top fanno riferimento all'area di immissione del testo del controllo e non all’elenco. Quando un controllo viene spostato o ridimensionato, la relativa impostazione Left viene immessa automaticamente nella finestra delle proprietà. Quando si stampa un form, la posizione orizzontale o verticale del controllo viene determinata dall’impostazione di Left o di Top.


Proprietà LineCount

Restituisce il numero di righe di testo presenti in un controllo TextBox o ComboBox.

Sintassi

oggetto.LineCount

La sintassi della proprietà LineCount è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

La proprietà LineCount è in sola lettura.

Nota  Nel controllo ComboBox è disponibile una sola riga.


Proprietà List

Restituisce o imposta le voci dell’elenco di un controllo ListBox o ComboBox.

Sintassi

oggetto.List( riga, colonna ) [= Variant]

La sintassi della proprietà List è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
riga	Obbligatoria. Numero intero compreso tra 0 e un numero minore di uno rispetto al numero di voci dell’elenco.
colonna	Obbligatoria. Numero intero compreso tra 0 e un numero minore di uno rispetto al numero di colonne.
Variant	Facoltativa. Contenuto della voce specificata in ListBox o ComboBox.
Impostazioni

La numerazione di righe e colonne inizia con il valore zero. Il numero di riga della prima riga dell’elenco è zero; il numero di colonna della prima colonna dell’elenco è zero. Il numero della seconda riga o colonna è 1 e così via.

Osservazioni

La proprietà List viene utilizzata con le proprietà ListCount e ListIndex. Utilizzare List per l’accesso a elementi dell’elenco. Un elenco è una matrice contenente variabili Variant. A ogni elemento dell’elenco viene assegnato un numero di riga e un numero di colonna.

Inizialmente, ComboBox e ListBox contengono un elenco vuoto.

Nota  Per specificare gli elementi da visualizzare in un controllo ComboBox o ListBox, utilizzare il metodo AddItem. Per rimuovere gli elementi, utilizzare il metodo RemoveItem.

La proprietà List consente inoltre di copiare in un controllo tutti i valori di una matrice bidimensionale. Utilizzare AddItem per caricare una matrice unidimensionale o un elemento alla volta.


Proprietà ListCount

Restituisce il numero di voci di un elenco del controllo.

Sintassi

oggetto.ListCount

La sintassi della proprietà ListCount è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

La proprietà ListCount è di sola lettura. ListCount è il numero delle righe sulle quali è possibile eseguire lo scorrimento. ListRows è il numero massimo di righe visualizzabili contemporaneamente. ListCount è sempre maggiore di un’unità rispetto al valore massimo della proprietà ListIndex, in quanto i numeri di indice iniziano da 0, mentre il conteggio degli elementi inizia da 1. Se non è selezionato alcun elemento, ListCount è uguale a 0 e ListIndex è –1.


Proprietà ListIndex

Identifica l’elemento selezionato in un controllo ListBox o ComboBox.

Sintassi

oggetto.ListIndex [= Variant]

La sintassi della proprietà ListIndex è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Variant	Facoltativa. Elemento selezionato nel controllo.
Osservazioni

La proprietà ListIndex contiene un indice della riga selezionata in un elenco. I valori di ListIndex sono compresi tra –1 e un numero minore di un’unità rispetto al numero totale di righe di un elenco (ovvero ListCount – 1). Quando non è selezionata alcuna riga, ListIndex restituisce –1. Quando l’utente seleziona una riga in un controllo ListBox o ComboBox, viene impostato automaticamente il valore di ListIndex. Il valore di ListIndex della prima riga di un elenco è 0, il valore della seconda riga è 1 e così via.

Nota  Se la proprietà MultiSelect viene utilizzata per la creazione di un controllo ListBox che consente selezioni multiple, le righe selezionate vengono indicate dalla proprietà Selected di ListBox (anziché dalla proprietà ListIndex). La proprietà Selected è una matrice con un numero di valori equivalente al numero di righe di ListBox. Per ciascuna riga della casella di riepilogo, Selected è True se la riga è selezionata e False in caso contrario. In un controllo ListBox che consente selezioni multiple, ListIndex restituisce l’indice della riga in cui si trova lo stato attivo, indipendentemente dal fatto che tale riga sia o meno selezionata.

Il valore di ListIndex è ottenibile anche impostando su 0 il valore della proprietà BoundColumn per una casella combinata o una casella di riepilogo. Quando BoundColumn è 0, la fonte dati sottostante, alla quale è associata la casella combinata o la casella di riepilogo, contiene lo stesso valore di ListIndex per l'indice dell'elenco .


Proprietà ListRows

Specifica il numero massimo di righe visualizzabili nell’elenco.

Sintassi

oggetto.ListRows [= Long]

La sintassi della proprietà ListRows è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Numero intero che indica il numero massimo di righe. Il valore predefinito è 8.
Osservazioni

Se il numero di voci dell’elenco supera il valore della proprietà ListRows, sul lato destro della parte elenco della casella combinata verrà visualizzata una barra di scorrimento verticale.


Proprietà ListStyle

Specifica l’aspetto dell’elenco di un controllo ListBox o ComboBox.

Sintassi

oggetto.ListStyle [= fmListStyle]

La sintassi della proprietà ListStyle è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmListStyle	Facoltativa. Stile dell’elenco.
Impostazioni

Le possibili impostazioni di fmListStyle sono:

Costante	Valore	Descrizione
fmListStylePlain	0	Casella di riepilogo normale, con lo sfondo degli elementi evidenziato.
fmListStyleOption	1	Mostra pulsanti di opzione o caselle di controllo per un elenco a selezione multipla (impostazione predefinita). Quando l’utente seleziona un elemento nel gruppo, il pulsante di opzione associato a tale elemento viene selezionato, mentre i pulsanti di opzione corrispondenti agli altri elementi del gruppo vengono deselezionati.
Osservazioni

La proprietà ListStyle consente di modificare l’aspetto di un controllo ListBox o ComboBox. Specificando un’impostazione diversa da fmListStylePlain, è possibile visualizzare il contenuto del controllo come gruppo di elementi distinti, per ognuno dei quali è previsto un indicatore visivo che ne indica la selezione.

Se il controllo supporta una selezione singola (se cioè la proprietà MultiSelect è impostata su fmMultiSelectSingle), l’utente potrà selezionare un elemento del gruppo. Se il controllo supporta la selezione multipla, l’utente potrà selezionare due o più elementi del gruppo.


Proprietà ListWidth

Specifica la larghezza dell’elenco in un controllo ComboBox.

Sintassi

oggetto.ListWidth [= Variant]

La sintassi della proprietà ListWidth è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Variant	Facoltativa. Larghezza dell’elenco. Il valore zero imposta per l’elenco la stessa larghezza del controllo ComboBox. Per impostazione predefinita, per l’elenco viene impostata la stessa larghezza dell'area di immissione del testo della casella combinata.
Osservazioni

Per visualizzare un elenco a colonne multiple, immettere un valore che imposti per la casella di riepilogo una larghezza sufficiente per visualizzare tutte le colonne.

Suggerimento  Per la progettazione delle caselle combinate, assicurarsi di lasciare uno spazio sufficiente per la visualizzazione dei dati e di una barra di scorrimento verticale.


Proprietà Locked

Specifica se è possibile modificare un determinato controllo.

Sintassi

oggetto.Locked [= Boolean]

La sintassi della proprietà Locked è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se il controllo può essere modificato.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Le modifiche al valore non sono consentite.
False	Le modifiche al valore sono consentite (impostazione predefinita).
Osservazioni

Anche quando è bloccato e attivato, un controllo può comunque generare eventi e ricevere lo stato attivo.


Proprietà MatchEntry

Restituisce o imposta un valore che indica la modalità di ricerca nell’elenco di un controllo ListBox o ComboBox durante l'immissione dei dati.

Sintassi

oggetto.MatchEntry [= fmMatchEntry]

La sintassi della proprietà MatchEntry è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmMatchEntry	Facoltativa. Criterio utilizzato per trovare corrispondenze nelle voci dell’elenco.
Impostazioni

Le possibili impostazioni di fmMatchEntry sono:

Costante	Valore	Descrizione
fmMatchEntryFirstLetter	0	Corrispondenza di base. Il controllo cerca la voce successiva che inizia con il carattere digitato. Se si digita la stessa lettera ripetutamente, verrà eseguito uno spostamento ciclico su tutte le voci che iniziano con tale lettera.
fmMatchEntryComplete	1	Corrispondenza estesa. Man mano che viene digitato ciascun carattere, il controllo cerca una voce che corrisponda a tutti i caratteri digitati (impostazione predefinita).
fmMatchEntryNone	2	Nessuna corrispondenza.
Osservazioni

La proprietà MatchEntry cerca le voci tra i valori della proprietà TextColumn di un controllo ListBox o ComboBox.

Il controllo cerca nella colonna identificata da TextColumn una voce che corrisponda a quella immessa dall’utente. Quando trova una corrispondenza, la riga viene selezionata, il contenuto della colonna viene visualizzato e il contenuto della proprietà BoundColumn della colonna diventa il valore del controllo. Se la corrispondenza non è ambigua, al momento dell’individuazione viene generato l’evento Click.

Il controllo inizializza l’evento Click non appena l’utente digita una sequenza di caratteri che corrisponde esattamente a una voce dell’elenco. Mentre l’utente digita, la voce viene confrontata con la riga corrente e con quella successiva dell’elenco. La corrispondenza risulta non ambigua quando la voce corrisponde soltanto alla riga corrente.

In Microsoft Forms, questa regola è valida indipendentemente dal fatto che l’elenco sia o meno in ordine alfabetico. Il controllo individua la prima occorrenza che corrisponde alla voce immessa, sulla base dell’ordine degli elementi dell’elenco. L’immissione di “abc” o “bc” inizializzerà ad esempio l’evento Click per il seguente elenco di voci:

abcde

bcdef

abcxyz

bchij

Si noti che in entrambi i casi la voce con la quale viene stabilita la corrispondenza non è univoca; tuttavia, risulta sufficientemente diversa dalla voce adiacente perché il controllo registri la corrispondenza come non ambigua e inizializzi l’evento Click.


Proprietà MatchFound

Indica se il testo digitato da un utente in una casella combinata corrisponde a una delle voci dell’elenco.

Sintassi

oggetto.MatchFound

La sintassi della proprietà MatchFound è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Valori restituiti

I valori restituiti dalla proprietà MatchFound sono:

Valore	Descrizione
True	Il contenuto della proprietà Value corrisponde a uno dei record dell’elenco.
False	Il contenuto della proprietà Value non corrisponde a nessun record dell’elenco (impostazione predefinita).
Osservazioni

La proprietà MatchFound è in sola lettura. Tale proprietà non è valida quando la proprietà MatchEntry è impostata su fmMatchEntryNone.


Proprietà MatchRequired

Specifica se un valore immesso nell'area di immissione del testo di un controllo ComboBox deve corrispondere a una voce nella parte elenco del controllo. È possibile immettere valori non corrispondenti, ma non sarà possibile spostarsi dal controllo fino a quando non viene immesso un valore corrispondente.

Sintassi

oggetto.MatchRequired [= Boolean]

La sintassi della proprietà MatchRequired è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se il testo immesso deve corrispondere a una voce esistente dell’elenco.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il testo immesso deve corrispondere a una voce esistente dell’elenco.
False	Il testo immesso può essere diverso da tutte le voci dell’elenco esistenti (impostazione predefinita).
Osservazioni

Se la proprietà MatchRequired è True, non sarà possibile spostarsi dal controllo ComboBox fino a quando il testo immesso non corrisponderà a una voce dell’elenco esistente. MatchRequired garantisce l’integrità dell’elenco, richiedendo all’utente la selezione di un elemento esistente.

Nota  Questa proprietà non è disponibile per tutti i contenitori.


Proprietà Max e Min

Specifica i valori massimo e minimo per la proprietà Value di un controllo ScrollBar o SpinButton.

Sintassi

oggetto.Max [= Long]

oggetto.Min [= Long]

La sintassi delle proprietà Max e Min è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Espressione numerica che specifica il valore di impostazione massimo o minimo per la proprietà Value.
Osservazioni

Se si fa clic su un controllo SpinButton o si sposta la casella di scorrimento in un controllo ScrollBar, la proprietà Value del controllo viene modificata.

Il valore della proprietà Max corrisponde al punto più basso di un controllo ScrollBar verticale o al punto più a destra di un controllo ScrollBar orizzontale. Il valore della proprietà Min corrisponde al punto più alto di un controllo ScrollBar verticale o al punto più a sinistra di un controllo ScrollBar orizzontale.

Qualsiasi numero intero rappresenta un’impostazione valida per questa proprietà. I valori consigliati vanno da –32.767 a +32.767. Il valore predefinito è 1.

Nota  Min e Max indicano posizioni e non valori relativi sul controllo ScrollBar. Pertanto, il valore di Max può essere minore di quello di Min. In questo caso lo spostamento verso la posizione Max (estremità inferiore) equivale a una riduzione di Value, mentre lo spostamento verso Min (estremità superiore) equivale a un aumento di Value.


Proprietà MaxLength

Specifica il numero massimo di caratteri che un utente può immettere in un controllo TextBox o ComboBox.

Sintassi

oggetto.MaxLength [= Long]

La sintassi della proprietà MaxLength è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Numero intero che indica il numero di caratteri consentito.
Osservazioni

L’impostazione della proprietà MaxLength su 0 indica che l’unico limite al numero di caratteri è rappresentato dai limiti di memoria del sistema.


Proprietà MouseIcon

Assegna un’icona personalizzata a un oggetto.

Sintassi

oggetto.MouseIcon = LoadPicture( nomepercorso )

La sintassi della proprietà MouseIcon è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
nomepercorso	Obbligatoria. Espressione stringa che specifica il percorso e il nome del file contenente l’icona personalizzata.
Osservazioni

La proprietà MouseIcon è valida quando la proprietà MousePointer è impostata su 99. L’icona per il mouse di un oggetto è l’immagine che appare quando l’utente sposta il puntatore del mouse sopra tale oggetto.

Per assegnare un’immagine al puntatore del mouse è possibile assegnare un’immagine alla proprietà MouseIcon oppure caricare un’immagine da un file tramite la funzione LoadPicture.


Proprietà MousePointer

Specifica il tipo di puntatore visualizzato quando l’utente si sposta con il mouse su un oggetto particolare.

Sintassi

oggetto.MousePointer [= fmMousePointer]

La sintassi della proprietà MousePointer è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmMousePointer	Facoltativa. Forma desiderata per il puntatore del mouse.
Impostazioni

Le possibili impostazioni di fmMousePointer sono:

Costante	Valore	Descrizione
fmMousePointerDefault	0	Puntatore standard. L’immagine viene determinata dall’oggetto (impostazione predefinita).
fmMousePointerArrow	1	Selezione normale.
fmMousePointerCross	2	Selezione di precisione.
fmMousePointerIBeam	3	Selezione testo.
fmMousePointerSizeNESW	6	Ridimensionamento diagonale 1.
fmMousePointerSizeNS	7	Ridimensionamento verticale.
fmMousePointerSizeNWSE	8	Ridimensionamento diagonale 2.
fmMousePointerSizeWE	9	Ridimensionamento orizzontale.
fmMousePointerUpArrow	10	Selezione alternativa.
fmMousePointerHourglass	11	Attesa.
fmMousePointerNoDrop	12	Non disponibile. Indica una destinazione di rilascio non consentita.
fmMousePointerAppStarting	13	Esecuzione in background.
fmMousePointerHelp	14	Selezione Guida.
fmMousePointerSizeAll	15	Ridimensiona tutto.
fmMousePointerCustom	99	Icona personalizzata specificata con la proprietà MouseIcon.
Osservazioni

Utilizzare la proprietà MousePointer per indicare le diverse funzioni man mano che il puntatore del mouse viene posizionato sui diversi controlli di un form. L’impostazione Attesa (11) è utile, ad esempio, per indicare all’utente di attendere il completamento di un processo o di un’operazione.

Alcune icone variano a seconda delle impostazioni di sistema, ad esempio le icone associate a specifiche combinazioni di puntatori.


Proprietà MultiLine

Specifica se un controllo consente di impostare e visualizzare più righe di testo.

Sintassi

oggetto.MultiLine [= Boolean]

La sintassi della proprietà MultiLine è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se il controllo supporta più di una riga di testo.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il testo viene visualizzato su più righe (impostazione predefinita).
False	Il testo non viene visualizzato su più righe.
Osservazioni

Un controllo TextBox a righe multiple supporta le interruzioni di riga assolute e modifica la quantità di righe per adeguarla al testo. Se necessario, un controllo a righe multiple può disporre di barre di scorrimento verticali.

Un controllo TextBox a riga singola non supporta le interruzioni di riga assolute né l’utilizzo di barre di scorrimento verticali.

I controlli a riga singola ignorano l’impostazione della proprietà WordWrap.

Nota   Se si imposta la proprietà MultiLine su False in un controllo TextBox a righe multiple, tutti i caratteri del controllo TextBox verranno inseriti in una sola riga, compresi i caratteri non stampabili.


Proprietà MultiRow

Specifica se nel controllo sono disponibili più righe di schede.

Sintassi

oggetto.MultiRow [= Boolean]

La sintassi della proprietà MultiRow è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se nel controllo sono disponibili più righe di schede.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Consente la presenza di più righe di schede.
False	Limita le schede a una riga singola (impostazione predefinita).
Osservazioni

La larghezza e il numero delle schede determina il numero delle righe. Modificando le dimensioni del controllo, si modifica anche il numero delle righe. In tal modo, il programmatore può ridimensionare il controllo e assicurarsi che le schede vadano a capo in modo corretto. Se la proprietà MultiRow è False e la larghezza delle schede è maggiore di quella del controllo, si verificano troncature.

Se MultiRow è False e le schede sono troncate, una piccola barra di scorrimento su TabStrip consente lo scorrimento alle altre schede.


Proprietà MultiSelect

Indica se l’oggetto consente la selezione multipla.

Sintassi

oggetto.MultiSelect [= fmMultiSelect]

La sintassi della proprietà MultiSelect è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmMultiSelect	Facoltativa. Modalità di selezione utilizzata dal controllo.
Impostazioni

Le possibili impostazioni di fmMultiSelect sono:

Costante	Valore	Descrizione
fmMultiSelectSingle	0	Consente la selezione di un solo elemento (impostazione predefinita).
fmMultiSelectMulti	1	Consente di selezionare o deselezionare un elemento dell’elenco premendo la barra spaziatrice o facendo clic con il mouse.
fmMultiSelectExtended	2	Premendo MAIUSC e facendo clic con il mouse o premendo MAIUSC in combinazione con uno dei tasti di direzione, la selezione viene estesa dal primo elemento selezionato all'ultimo. Premendo CTRL e facendo clic con il mouse, è possibile selezionare o deselezionare un elemento.
Osservazioni

Quando la proprietà MultiSelect è impostata su Extended o Simple, per determinare gli elementi selezionati è necessario utilizzare la proprietà Selected della casella di riepilogo. La proprietà Value del controllo è sempre Null.

La proprietà ListIndex restituisce l’indice della riga che ha ricevuto lo stato attivo tramite la tastiera.


Proprietà Name

Specifica il nome di un controllo o di un oggetto oppure il nome di un tipo di carattere da associare a un oggetto Font.

Sintassi

Per Font
Font.Name [= String]

Per tutti gli altri controlli e oggetti
oggetto.Name [= String]

La sintassi della proprietà Name è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Nome da assegnare al tipo di carattere o al controllo.
Impostazioni

Le regole per l’assegnazione di una stringa a Name, quale la lunghezza massima del nome, variano a seconda dell’applicazione.

Osservazioni

Per gli oggetti, il valore predefinito di Name è costituito dal nome di classe dell’oggetto seguito da un numero intero. Il nome predefinito per il primo controllo TextBox inserito in un form è ad esempio TextBox1. Il nome predefinito per il secondo controllo TextBox è TextBox2 e così via.

È possibile impostare la proprietà Name di un controllo dalla finestra delle proprietà del controllo oppure, nel caso di controlli aggiunti in fase di esecuzione, tramite istruzioni di programma. Se il controllo viene aggiunto in fase di progettazione, non è possibile modificarne la proprietà Name in fase di esecuzione.

A ciascun controllo aggiunto a un form in fase di progettazione deve essere assegnato un nome univoco.

Per gli oggetti Font, la proprietà Name identifica un carattere tipografico da utilizzare nell'area di immissione del testo di un controllo, oggetto o form. L’aspetto del tipo di carattere su schermo può essere diverso da quello in stampa, a seconda del computer e della stampante utilizzata. Se si seleziona un tipo di carattere che il sistema non è in grado di visualizzare o che non è installato, Windows lo sostituirà con un tipo di carattere simile.


Proprietà Object

Ignora una proprietà o metodo standard se il nome di una proprietà o di un metodo di un nuovo controllo è uguale al nome standard.

Sintassi

oggetto.Object[.proprietà |.metodo]

La sintassi della proprietà Object è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Nome di un oggetto aggiunto alla casella degli strumenti di Microsoft Forms.
proprietà	Facoltativa. Proprietà personalizzata il cui nome è identico al nome di una proprietà standard di Microsoft Forms.
metodo	Facoltativa. Metodo il cui nome è identico al nome di un metodo standard di Microsoft Forms.
Osservazioni

La proprietà Object è in sola lettura.

Se si aggiunge un nuovo controllo alla casella degli strumenti di Microsoft Forms, è possibile che il controllo comprenda una proprietà o un metodo il cui nome è identico a quello di una delle proprietà o dei metodi standard di Microsoft Forms. La proprietà Object consente di utilizzare la proprietà o il metodo del controllo aggiunto anziché la proprietà o il metodo standard.


Proprietà OldHeight e OldWidth

Restituisce l’altezza o la larghezza precedente del controllo, espressa in punti.

Sintassi

oggetto.OldHeight

oggetto.OldWidth

La sintassi delle proprietà OldHeight e OldWidth è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

Le proprietà OldHeight e OldWidth sono in sola lettura.

Le proprietà OldHeight e OldWidth vengono aggiornate automaticamente quando un controllo viene spostato o ridimensionato. Se vengono modificate le dimensioni di un controllo, le proprietà Height e Width memorizzano la nuova altezza, mentre OldHeight e OldWidth memorizzano l’altezza precedente.

Queste proprietà sono valide solo per l’evento Layout.


Proprietà OldLeft e OldTop

Restituisce la distanza in punti tra la posizione precedente di un controllo e il margine sinistro o superiore del form che lo contiene.

Sintassi

oggetto.OldLeft

oggetto.OldTop

La sintassi delle proprietà OldLeft e OldTop è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

OldLeft e OldTop sono in sola lettura.

Le proprietà OldLeft e OldTop vengono aggiornate automaticamente quando un controllo viene spostato o ridimensionato. Se si sposta un controllo, le proprietà Left e Top memorizzano la nuova distanza tra il controllo e il margine sinistro del contenitore, mentre OldLeft e OldTop memorizzano il valore precedente rispettivamente di Left e Top.

OldLeft e OldTop sono valide solo per l’evento Layout.


Proprietà Orientation

Specifica se il controllo SpinButton o ScrollBar è orientato verticalmente o orizzontalmente.

Sintassi

oggetto.Orientation [= fmOrientation]

La sintassi della proprietà Orientation è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmOrientation	Facoltativa. Orientamento del controllo.
Impostazioni

Le possibili impostazioni di fmOrientation sono:

Costante	Valore	Descrizione
fmOrientationAuto	–1	Determina in modo automatico l’orientamento in base alle dimensioni del controllo (impostazione predefinita).
FmOrientationVertical	0	Il controllo viene orientato verticalmente.
FmOrientationHorizontal	1	Il controllo viene orientato orizzontalmente.
Osservazioni

Se si specifica l’orientamento automatico, l’altezza e la larghezza del controllo ne determinano la visualizzazione verticale o orizzontale. Se ad esempio il controllo è più largo che alto, verrà visualizzato orizzontalmente, mentre se è più alto che largo, verrà visualizzato verticalmente.


Proprietà Parent

Restituisce il nome del form, dell’oggetto o dell’insieme contenente un controllo, un oggetto o un insieme specifico.

Sintassi

oggetto.Parent

La sintassi della proprietà Parent è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

La proprietà Parent è in sola lettura.

Utilizzare la proprietà Parent per accedere alle proprietà, ai metodi o ai controlli del contenitore di un determinato oggetto.

Questa proprietà risulta utile in un’applicazione in cui gli oggetti vengono passati come argomenti. È ad esempio possibile passare una variabile di controllo a una routine generale in un modulo e utilizzare Parent per l’accesso al form principale della routine.


Proprietà PasswordChar

Specifica se vengono visualizzati caratteri segnaposto al posto dei caratteri immessi in un controllo TextBox.

Sintassi

oggetto.PasswordChar [= String]

La sintassi della proprietà PasswordChar è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Espressione stringa che specifica il carattere segnaposto.
Osservazioni

La proprietà PasswordChar consente di proteggere informazioni riservate, quali password o codici di sicurezza. Il valore di PasswordChar è il carattere visualizzato in un controllo al posto dei caratteri digitati dall’utente. Se non si specifica alcun carattere, nel controllo verranno visualizzati i caratteri digitati dall’utente.


Proprietà Picture

Specifica la bitmap da visualizzare su un oggetto.

Sintassi

oggetto.Picture = LoadPicture( nomepercorso )

La sintassi della proprietà Picture è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
nomepercorso	Obbligatoria. Percorso completo di un file immagine.
Osservazioni

Durante la progettazione di un form, è possibile utilizzare la pagina delle proprietà del controllo per assegnare una bitmap alla proprietà Picture. Durante l’esecuzione di un form, per assegnare una bitmap alla proprietà Picture è necessario utilizzare la funzione LoadPicture.

Per rimuovere un’immagine assegnata a un controllo, fare clic sul valore della proprietà Picture nella pagina delle proprietà, quindi premere CANC. Se si preme BACKSPACE l’immagine non verrà rimossa.

Nota  Nel caso di controlli con didascalia, per specificare il punto dell’oggetto in cui visualizzare l’immagine, utilizzare la proprietà PicturePosition. Utilizzare invece la proprietà PictureSizeMode per determinare in che modo l’immagine occupa l’oggetto.

Le immagini trasparenti appaiono a volte offuscate. Per eliminare questo effetto, è possibile visualizzare l’immagine in un controllo che supporta le immagini opache, quali Image e MultiPage.


Proprietà PictureAlignment

Specifica la posizione di un’immagine di sfondo.

Sintassi

oggetto.PictureAlignment [= fmPictureAlignment]

La sintassi della proprietà PictureAlignment è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmPictureAlignment	Facoltativa. Posizione rispetto alla quale l’immagine viene allineata al controllo.
Impostazioni

Le possibili impostazioni di fmPictureAlignment sono:

Costante	Valore	Descrizione
fmPictureAlignmentTopLeft	0	Angolo superiore sinistro.
fmPictureAlignmentTopRight	1	Angolo superiore destro.
fmPictureAlignmentCenter	2	Centro.
fmPictureAlignmentBottomLeft	3	Angolo inferiore sinistro.
fmPictureAlignmentBottomRight	4	Angolo inferiore destro.
Osservazioni

La proprietà PictureAlignment identifica l’angolo dell’immagine che coincide con l’angolo corrispondente del controllo o del contenitore nel quale l’immagine viene utilizzata.

Se ad esempio si imposta PictureAlignment su fmPictureAlignmentTopLeft, l’angolo superiore sinistro dell’immagine coinciderà con l’angolo superiore sinistro del controllo o del contenitore. Se PictureAlignment viene invece impostata su fmPictureAlignmentCenter, l’immagine verrà posizionata centralmente rispetto all’altezza e alla larghezza del controllo o contenitore.

Se un’immagine viene affiancata ad altre copie su un controllo o contenitore, l’impostazione di PictureAlignment influenza la modalità di affiancamento. Se ad esempio PictureAlignment è impostata su fmPictureAlignmentUpperLeft, la prima copia dell’immagine viene posizionata nell’angolo superiore sinistro del controllo o contenitore e le copie aggiuntive vengono affiancate da sinistra a destra, lungo ciascuna riga. Se invece PictureAlignment è impostata su fmPictureAlignmentCenter, la prima copia viene posizionata al centro del controllo o del contenitore. Le copie successive vengono poste a destra e a sinistra della prima a completare la riga, quindi vengono aggiunte righe supplementari fino a occupare tutto il controllo o contenitore.

Nota  Se si imposta la proprietà PictureSizeMode su fmSizeModeStretch, la proprietà PictureAlignment viene ignorata. Quando PictureSizeMode è impostata su fmSizeModeStretch, l’immagine occupa l’intero controllo o contenitore.


Proprietà PicturePosition

Specifica la posizione dell’immagine rispetto alla didascalia corrispondente.

Sintassi

oggetto.PicturePosition [= fmPicturePosition]

La sintassi della proprietà PicturePosition è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmPicturePosition	Facoltativa. Modalità di allineamento dell’immagine rispetto al contenitore.
Impostazioni

Le possibili impostazioni di fmPicturePosition sono:

Costante	Valore	Descrizione
fmPicturePositionLeftTop	0	L’immagine appare a sinistra della didascalia; la didascalia è allineata alla parte superiore dell’immagine.
fmPicturePositionLeftCenter	1	L’immagine appare a sinistra della didascalia; la didascalia è centrata rispetto all’immagine.
fmPicturePositionLeftBottom	2	L’immagine appare a sinistra della didascalia; la didascalia è allineata alla parte inferiore dell’immagine.
fmPicturePositionRightTop	3	L’immagine appare a destra della didascalia; la didascalia è allineata alla parte superiore dell’immagine.
fmPicturePositionRightCenter	4	L’immagine appare a destra della didascalia; la didascalia è centrata rispetto all’immagine.
fmPicturePositionRightBottom	5	L’immagine appare a destra della didascalia; la didascalia è allineata alla parte inferiore dell’immagine.
fmPicturePositionAboveLeft	6	L’immagine appare sopra la didascalia; la didascalia è allineata al margine sinistro dell’immagine.
fmPicturePositionAboveCenter	7	L’immagine appare sopra la didascalia; la didascalia è centrata al di sotto dell’immagine (impostazione predefinita).
fmPicturePositionAboveRight	8	L’immagine appare sopra la didascalia; la didascalia è allineata al margine destro dell’immagine.
fmPicturePositionBelowLeft	9	L’immagine appare sotto la didascalia; la didascalia è allineata al margine sinistro dell’immagine.
fmPicturePositionBelowCenter	10	L’immagine appare sotto la didascalia; la didascalia è centrata sopra l’immagine.
fmPicturePositionBelowRight	11	L’immagine appare sotto la didascalia; la didascalia è allineata al margine destro dell’immagine.
fmPicturePositionCenter	12	L’immagine appare al centro del controllo; la didascalia è centrata in senso verticale e orizzontale e sovrapposta all’immagine.
Osservazioni

L’immagine e la didascalia vengono centrate nel controllo come una singola unità. Se non esiste alcuna didascalia, la posizione dell’immagine è relativa al centro del controllo.

Questa proprietà viene ignorata se la proprietà Picture non specifica un’immagine.


Proprietà PictureSizeMode

Specifica la modalità di visualizzazione dell’immagine di sfondo di un controllo, di un form o di una pagina.

Sintassi

oggetto.PictureSizeMode [= fmPictureSizeMode]

La sintassi della proprietà PictureSizeMode è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmPictureSizeMode	Facoltativa. Azione da eseguire se l’immagine e il form o la pagina che la contengono non hanno le stesse dimensioni.
Impostazioni

Le possibili impostazioni di fmPictureSizeMode sono:

Costante	Valore	Descrizione
fmPictureSizeModeClip	0	Ritaglia tutte le parti dell’immagine che superano la larghezza del form o della pagina (impostazione predefinita).
fmPictureSizeModeStretch	1	Estende l’immagine fino a occupare tutto il form o la pagina. L’immagine viene distorta in senso orizzontale o verticale.
fmPictureSizeModeZoom	3	Ingrandisce l’immagine, senza distorcerla.
Osservazioni

La costante fmPictureSizeModeClip indica che si desidera visualizzare l’immagine con le dimensioni e l’ingrandimento originali. Se il form o la pagina hanno dimensioni inferiori rispetto all’immagine, verrà visualizzata soltanto la parte dell’immagine che rientra nel form o nella pagina.

Entrambe le impostazioni fmPictureSizeModeStretch e fmPictureSizeModeZoom ingrandiscono l’immagine. Tuttavia, fmPictureSizeModeStretch determina distorsioni. L’impostazione fmPictureSizeModeStretch ingrandisce l’immagine verticalmente e orizzontalmente, fino a farle raggiungere i margini del contenitore o del controllo. L’impostazione fmPictureSizeModeZoom ingrandisce l’immagine fino a quando questa non raggiunge i margini orizzontali oppure i margini verticali del contenitore o del controllo. Se l’immagine raggiunge prima i margini orizzontali, lo spazio rimanente tra l’immagine e i margini verticali resterà vuoto. Se l’immagine raggiunge prima i margini verticali, lo spazio rimanente tra l’immagine e i margini orizzontali resterà vuoto.


Proprietà PictureTiling

Consente di affiancare più copie di un’immagine in un form o in una pagina.

Sintassi

oggetto.PictureTiling [= Boolean]

La sintassi della proprietà PictureTiling è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se un’immagine viene riprodotta più volte su uno sfondo.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	L’immagine viene riprodotta e le copie vengono affiancate sullo sfondo.
False	L’immagine non viene riprodotta (impostazione predefinita).
Osservazioni

Se le dimensioni di un’immagine sono inferiori a quelle del form o della pagina che la contengono, è possibile affiancare più copie dell’immagine sul form o sulla pagina.

La modalità di affiancamento dipende dall’impostazione corrente delle proprietà PictureAlignment e PictureSizeMode. Se ad esempio PictureAlignment è impostata su fmPictureAlignmentTopLeft, la disposizione inizia nell’angolo superiore sinistro e l'immagine viene ripetuta verso destra e verso il basso nel form o nella pagina. Se PictureSizeMode è impostata su fmPictureSizeModeClip, quando l’ultima immagine affiancata non rientra completamente nei margini del form o della pagina, tale immagine verrà ritagliata.


Proprietà ProportionalThumb

Specifica se le dimensioni della casella di scorrimento sono fisse o direttamente proporzionali a quelle dell’area di scorrimento.

Sintassi

oggetto.ProportionalThumb [= Boolean]

La sintassi della proprietà ProportionalThumb è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se la casella di scorrimento ha dimensioni fisse o proporzionali a quelle dell’area di scorrimento.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	La casella di scorrimento ha dimensioni proporzionali rispetto a quelle dell’area di scorrimento (impostazione predefinita).
False	La casella di scorrimento ha dimensioni fisse.
Osservazioni

Le dimensioni di una casella di scorrimento proporzionale rappresentano graficamente la percentuale dell’oggetto visibile nella finestra. Se ad esempio nella finestra è visibile il 75 percento di un oggetto, la casella di scorrimento occuperà i tre quarti dell’area di scorrimento sulla barra.

Se la casella di scorrimento ha dimensioni fisse, il sistema ne determina le dimensioni in base all’altezza e alla larghezza della barra di scorrimento.


Proprietà RowSource

Specifica l’origine da cui proviene un elenco di un controllo ComboBox o ListBox.

Sintassi

oggetto.RowSource [= String]

La sintassi della proprietà RowSource è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Origine dell’elenco per ComboBox o ListBox.
Osservazioni

La proprietà RowSource accetta intervalli di celle di fogli di lavoro di Microsoft Excel.


Proprietà ScrollBars

Specifica se in un controllo, in un form o in una pagina sono disponibili una barra di scorrimento verticale, una barra di scorrimento orizzontale o entrambe.

Sintassi

oggetto.ScrollBars [= fmScrollBars]

La sintassi della proprietà ScrollBars è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmScrollBars	Facoltativa. Indica quali barre di scorrimento vengono visualizzate.
Impostazioni

Le possibili impostazioni di fmScrollBars sono:

Costante	Valore	Descrizione
fmScrollBarsNone	0	Non visualizza barre di scorrimento (impostazione predefinita).
fmScrollBarsHorizontal	1	Visualizza una barra orizzontale.
fmScrollBarsVertical	2	Visualizza una barra verticale.
fmScrollBarsBoth	3	Visualizza sia una barra di scorrimento orizzontale che una verticale.
Osservazioni

Se la proprietà KeepScrollBarsVisible è True, le barre di scorrimento presenti su un form o una pagina sono sempre visibili, indipendentemente dal fatto che il contenuto dell’oggetto si estenda o meno oltre i margini dell’oggetto stesso.

L'area in cui può scorrere la casella di scorrimento coincide con l'area visibile della barra. La posizione di scorrimento viene inoltre modificata in modo da mantenere visibile l’intera barra di scorrimento. L’intervallo di una barra di scorrimento cambia quando viene modificato il valore della proprietà ScrollBars, l'intervallo di scorrimento o la dimensione dell’area visibile dell’oggetto.

Se una barra di scorrimento non è visibile, è possibile impostarne la posizione di scorrimento su qualsiasi valore. Sono validi sia valori negativi che valori maggiori all'intervallo di scorrimento.

Per un controllo a riga singola, è possibile visualizzare una barra di scorrimento orizzontale utilizzando le proprietà ScrollBars e AutoSize. Le barre di scorrimento vengono visualizzate o nascoste in base ai seguenti criteri:

1.	Quando ScrollBars è impostata su fmScrollBarsNone, non viene visualizzata alcuna barra di scorrimento.

2.	Quando ScrollBars è impostata su fmScrollBarsHorizontal o fmScrollBarsBoth, il controllo visualizza una barra di scorrimento orizzontale se le dimensioni del testo superano quelle dell’area di modifica e se nel controllo è disponibile spazio sufficiente per includere la barra di scorrimento al di sotto dell’area di modifica.

3.	Quando AutoSize è True, il controllo si espande per consentire l’inserimento di una barra di scorrimento, salvo il caso in cui il controllo abbia raggiunto o quasi le dimensioni massime.

Per un controllo TextBox a righe multiple, è possibile visualizzare barre di scorrimento utilizzando le proprietà ScrollBars, WordWrap e AutoSize. Le barre di scorrimento vengono visualizzate o nascoste in base ai seguenti criteri:

1.	Quando ScrollBars è impostata su fmScrollBarsNone, non viene visualizzata alcuna barra di scorrimento.

2.	Quando ScrollBars è impostata su fmScrollBarsVertical o fmScrollBarsBoth, il controllo visualizza una barra di scorrimento verticale se la lunghezza del testo supera quella dell’area di modifica, e se nel controllo è disponibile spazio sufficiente per inserire la barra di scorrimento sul lato destro dell’area di modifica.

3.	Quando WordWrap è True, il controllo a righe multiple non visualizzerà una barra di scorrimento orizzontale. La maggior parte dei controlli a righe multiple non utilizza barre di scorrimento orizzontali.

4.	Un controllo a righe multiple può visualizzare una barra di scorrimento orizzontale se le seguenti condizioni si verificano contemporaneamente:

•	L’area di modifica contiene una parola la cui lunghezza supera la larghezza dell’area stessa.

•	Il controllo ha le barre di scorrimento orizzontali attivate.

•	Nel controllo è disponibile spazio sufficiente per l’inserimento della barra di scorrimento al di sotto dell’area di modifica.

•	La proprietà WordWrap è impostata su False.


Proprietà ScrollHeight e ScrollWidth

Specificano l’altezza in punti dell’area totale visualizzabile spostando le barre di scorrimento sul controllo, sul form o sulla pagina.

Sintassi

oggetto.ScrollHeight [= Single]

oggetto.ScrollWidth [= Single]

La sintassi delle proprietà ScrollHeight e ScrollWidth è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Single	Facoltativa. Altezza o larghezza dell’area di scorrimento.


Proprietà ScrollLeft e ScrollTop

Specificano la distanza in punti del margine sinistro o superiore del form visibile rispetto al margine sinistro o superiore del form, della pagina o del controllo logici.

Sintassi

oggetto.ScrollLeft [= Single]

oggetto.ScrollTop [= Single]

La sintassi delle proprietà ScrollLeft e ScrollTop è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Single	Facoltativa. Distanza dal margine del form.
Osservazioni

Il valore minimo è zero; il valore massimo è la differenza tra il valore della proprietà ScrollWidth e il valore della proprietà Width del form o della pagina.


Proprietà Selected

Restituisce o imposta lo stato di selezione degli elementi di un controllo ListBox.

Sintassi

oggetto.Selected( indice ) [= Boolean]

La sintassi della proprietà Selected è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
indice	Obbligatoria. Numero intero compreso tra 0 e un numero minore di un’unità rispetto al numero degli elementi dell’elenco.
Boolean	Facoltativa. Indica se un elemento è selezionato.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	L’elemento è selezionato.
False	L’elemento non è selezionato.
Osservazioni

La proprietà Selected risulta utile quando gli utenti possono eseguire selezioni multiple. La proprietà consente di determinare le righe selezionate in una casella di riepilogo a selezione multipla. La proprietà consente inoltre di selezionare o deselezionare, tramite il codice, le righe desiderate di un elenco.

Il valore predefinito della proprietà si basa sullo stato di selezione corrente di ListBox.

Per caselle di riepilogo a selezione singola, si consiglia l’utilizzo delle proprietà Value o ListIndex per leggere e impostare la selezione. In tal caso, ListIndex restituisce l’indice dell’elemento selezionato. In una selezione multipla, tuttavia, ListIndex restituisce l’indice della riga racchiusa dal rettangolo che indica lo stato attivo, indipendentemente dal fatto che tale riga sia o meno selezionata.

Quando la proprietà MultiSelect di un controllo casella di riepilogo è impostata su None, soltanto una riga può avere la proprietà Selected impostata su True.

L’immissione di un valore di indice non compreso nell’intervallo non genera un messaggio di errore, ma non imposta la proprietà per alcun valore dell’elenco.


Proprietà SelectedItem

Restituisce l’oggetto Tab o Page selezionato.

Sintassi

oggetto.SelectedItem

La sintassi della proprietà SelectedItem è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Controllo TabStrip o MultiPage valido.
Osservazioni

La proprietà SelectedItem è di sola lettura. Per controllare a livello di programmazione l’oggetto Tab o Page selezionato, è necessario utilizzare SelectedItem che consente, ad esempio, di assegnare valori alle proprietà di un oggetto Tab o Page.


Proprietà SelectionMargin

Specifica se l’utente può selezionare una riga di testo facendo clic sull’area posta a sinistra del testo.

Sintassi

oggetto.SelectionMargin [= Boolean]

La sintassi della proprietà SelectionMargin è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se facendo clic sul margine si ottiene la selezione di una riga di testo.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Facendo clic sul margine viene selezionato il testo (impostazione predefinita).
False	Facendo clic sul margine non viene selezionato il testo.
Osservazioni

Quando la proprietà SelectionMargin è True, il margine di selezione occupa una striscia sottile lungo il margine sinistro dell’area di modifica di un controllo. Quando la proprietà è impostata su False, il testo può occupare l’intera area di modifica.

Se la proprietà SelectionMargin è impostata su True al momento della stampa di un controllo, verrà stampato anche il margine di selezione.


Proprietà SelLength

Numero di caratteri selezionati in una casella di testo o nell'area di immissione del testo di una casella combinata.

Sintassi

oggetto.SelLength [= Long]

La sintassi della proprietà SelLength è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Espressione numerica che indica il numero di caratteri selezionati. Per SelLength e SelStart, l’intervallo valido è compreso tra 0 e il numero totale di caratteri nell’area di modifica di un controllo ComboBox o TextBox.
Osservazioni

La proprietà SelLength è sempre valida, anche quando lo stato attivo non si trova sul controllo. Se SelLength viene impostata su un valore minore di zero, viene generato un errore. Se si tenta di impostare SelLength su un valore maggiore del numero di caratteri disponibili in un controllo, viene impostato automaticamente un valore equivalente al numero di caratteri del controllo.

Nota  La modifica del valore della proprietà SelStart determina l’annullamento della selezione precedente nel controllo, il posizionamento di un punto di inserimento nel testo e l’impostazione di SelLength su zero.

Il valore predefinito, zero, indica che al momento non è selezionato alcun testo.


Proprietà SelStart

Indica il punto di inizio del testo selezionato oppure il punto di inserimento se non è selezionato alcun testo.

Sintassi

oggetto.SelStart [= Long]

La sintassi della proprietà SelStart è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Espressione numerica che indica il punto di inizio del testo selezionato. Per SelLength e SelStart, l’intervallo valido è compreso tra 0 e il numero totale di caratteri nell’area di modifica di un controllo ComboBox o TextBox. Il valore predefinito è zero.
Osservazioni

La proprietà SelStart è sempre valida, anche quando lo stato attivo non si trova sul controllo. Se SelStart viene impostata su un valore minore di zero, viene generato un errore. Se si tenta di impostare SelStart su un valore maggiore del numero di caratteri disponibili in un controllo, viene impostato automaticamente un valore equivalente al numero di caratteri del controllo.

La modifica del valore della proprietà SelStart determina l’annullamento della selezione precedente nel controllo, il posizionamento del punto di inserimento nel testo e l’impostazione di SelLength su zero.


Proprietà SelText

Restituisce o imposta il testo selezionato di un controllo.

Sintassi

oggetto.SelText [= String]

La sintassi della proprietà SelText è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Espressione stringa contenente il testo selezionato.
Osservazioni

Se nell’area di modifica del controllo non è selezionato alcun carattere, la proprietà SelText restituirà una stringa di lunghezza zero. Questa proprietà è valida indipendentemente dal fatto che lo stato attivo si trovi o meno sul controllo.


Proprietà ShowDropButtonWhen

Specifica quando il pulsante di apertura viene visualizzato in un controllo ComboBox o TextBox.

Sintassi

oggetto.ShowDropButtonWhen [= fmShowDropButtonWhen]

La sintassi della proprietà ShowDropButtonWhen è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmShowDropButtonWhen	Facoltativa. Condizioni che determinano se il pulsante di apertura sarà visibile.
Impostazioni

Le possibili impostazioni di fmShowDropButtonWhen sono:

Costante	Valore	Descrizione
fmShowDropButtonWhenNever	0	Non visualizza il pulsante di apertura in alcun caso.
fmShowDropButtonWhenFocus	1	Visualizza il pulsante di apertura soltanto quando lo stato attivo si trova sul controllo.
fmShowDropButtonWhenAlways	2	Visualizza sempre il pulsante di apertura.
Per i controlli ComboBox e TextBox, il valore predefinito è rispettivamente fmShowDropButtonWhenAlways e fmShowDropButtonWhenNever.


Proprietà SmallChange

Specifica l’entità dello spostamento che viene eseguito quando si fa clic su una delle frecce di scorrimento in un controllo ScrollBar o SpinButton.

Sintassi

oggetto.SmallChange [= Long]

La sintassi della proprietà SmallChange è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Numero intero che specifica l’entità della modifica della proprietà Value.
Osservazioni

La proprietà SmallChange non prevede unità di misura.

È possibile specificare come impostazione di questa proprietà un qualsiasi numero intero. L’intervallo consigliato è compreso tra –32.767 e +32.767. Il valore predefinito è 1.


Proprietà SpecialEffect

Specifica l’aspetto di visualizzazione di un oggetto.

Sintassi

Per CheckBox, OptionButton, ToggleButton
oggetto.SpecialEffect [= fmButtonEffect]

Per gli altri controlli
oggetto.SpecialEffect [= fmSpecialEffect]

La sintassi della proprietà SpecialEffect è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmButtonEffect	Facoltativa. Aspetto desiderato per il controllo CheckBox, OptionButton o ToggleButton.
fmSpecialEffect	Facoltativa. Aspetto desiderato per un oggetto diverso da CheckBox, OptionButton o ToggleButton.
Impostazioni

Le possibili impostazioni di fmSpecialEffect sono:

Costante	Valore	Descrizione
fmSpecialEffectFlat	0	L’oggetto appare piatto, separato dal form tramite un bordo, una variazione di colore o entrambi. Impostazione predefinita per i controlli Image e Label, valida per tutti i controlli.
fmSpecialEffectRaised	1	L’oggetto è caratterizzato da un bordo chiaro sui lati superiore e sinistro e da un’ombreggiatura sui lati inferiore e destro. Non valida per caselle di controllo o pulsanti di opzione.
fmSpecialEffectSunken	2	L’oggetto è caratterizzato da un’ombreggiatura sui lati superiore e sinistro e da un bordo chiaro sui lati inferiore e destro. Il controllo e il bordo sembrano incassati rispetto al form che li contiene. Impostazione predefinita per i controlli CheckBox e OptionButton. Valida per tutti i controlli (impostazione predefinita).
fmSpecialEffectEtched	3	Il bordo appare incassato rispetto al margine del controllo. Non valida per caselle di controllo o pulsanti di opzione.
fmSpecialEffectBump	6	L’oggetto è caratterizzato da un rilievo sui lati inferiore e destro e appare piatto sui lati superiore e sinistro. Non valida per caselle di controllo o pulsanti di opzione.
Per un controllo Frame, il valore predefinito è Sunken.

Si noti che per CheckBox, OptionButton e ToggleButton sono accettabili soltanto Flat e Sunken (0 e 2). Tutti i valori elencati sono accettabili per gli altri controlli.

Osservazioni

Per specificare la visualizzazione dei bordi di un controllo è possibile utilizzare la proprietà SpecialEffect o la proprietà BorderStyle, ma non entrambe. Se si specifica per una di queste proprietà un valore diverso da zero, il sistema imposterà il valore dell’altra su zero. Se ad esempio si imposta SpecialEffect su fmSpecialEffectRaised, il sistema imposterà BorderStyle su zero (fmBorderStyleNone).

Per un controllo Frame, BorderStyle viene ignorata se SpecialEffect è impostata su fmSpecialEffectFlat.

SpecialEffect definisce i bordi degli oggetti utilizzando i colori di sistema.

Nota   Per il controllo ToggleButton la proprietà SpecialEffect, pur essendo disponibile, è disattivata, ovvero non è possibile impostarne o restituirne il valore.


Proprietà Style

Per un controllo ComboBox, specifica la modalità in base alla quale l’utente utilizza il controllo. Per MultiPage e TabStrip, identifica lo stile delle schede sul controllo.

Sintassi

Per ComboBox
oggetto.Style [= fmStyle]

Per MultiPage e TabStrip
oggetto.Style [= fmTabStyle]

La sintassi della proprietà Style è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmStyle	Facoltativa. Specifica la modalità in base alla quale l’utente imposta il valore di un controllo ComboBox.
fmTabStyle	Facoltativa. Specifica lo stile delle schede in un controllo MultiPage o TabStrip.
Impostazioni

Le possibili impostazioni di fmStyle sono:

Costante	Valore	Descrizione
fmStyleDropDownCombo	0	ComboBox funziona come una casella combinata a discesa. L’utente può digitare un valore nell’area di modifica o selezionarne uno nell’elenco a discesa (impostazione predefinita).
fmStyleDropDownList	2	ComboBox funziona come una casella di riepilogo. L’utente deve selezionare un valore nell’elenco.
Le possibili impostazioni di fmTabStyle sono:

Costante	Valore	Descrizione
fmTabStyleTabs	0	Visualizza le linguette sulla barra delle schede (impostazione predefinita).
fmTabStyleButtons	1	Visualizza pulsanti sulla barra delle schede.
fmTabStyleNone	2	Non visualizza la barra delle schede.


Proprietà TabFixedHeight e TabFixedWidth

Imposta o restituisce l’altezza o la larghezza fissa in punti delle linguette delle schede.

Sintassi

oggetto.TabFixedHeight [= Single]

oggetto.TabFixedWidth [= Single]

La sintassi delle proprietà TabFixedHeight e TabFixedWidth è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Single	Facoltativa. Dimensione in punti dell’altezza o della larghezza delle linguette delle schede di un controllo TabStrip o MultiPage.
Impostazioni

Se il valore è 0, la larghezza delle linguette delle schede viene regolata automaticamente, in modo che la larghezza di ciascuna linguetta si adatti al contenuto e che ciascuna riga di linguette si estenda per l’intera larghezza del controllo.

Se il valore è maggiore di 0, per tutte le linguette verrà impostata la stessa larghezza, specificata dalla proprietà.

Osservazioni

La dimensione minima è 4 punti.


Proprietà TabIndex

Specifica la posizione di un oggetto nell’ordine di tabulazione del form.

Sintassi

oggetto.TabIndex [= Integer]

La sintassi della proprietà TabIndex è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Integer	Facoltativa. Numero intero compreso tra 0 e un numero minore di un’unità rispetto al numero dei controlli del form per i quali è disponibile la proprietà TabIndex. L’assegnazione di un valore di TabIndex inferiore a 0 determina un errore. Se si assegna un valore di TabIndex maggiore del valore massimo di indice, il sistema reimposta il valore sul valore massimo consentito.
Osservazioni

Il valore di indice del primo oggetto dell’ordine di tabulazione è zero.


Proprietà TabKeyBehavior

Determina se se è possibile immettere tabulazioni nell’area di modifica.

Sintassi

oggetto.TabKeyBehavior [= Boolean]

La sintassi della proprietà TabKeyBehavior è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Effetto della pressione di TAB.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Premendo TAB viene inserito un carattere di tabulazione nell’area di modifica.
False	Premendo TAB lo stato attivo viene spostato sull’oggetto successivo dell’ordine di tabulazione (impostazione predefinita).
Osservazioni

Le proprietà TabKeyBehavior e MultiLine sono correlate in modo diretto. I valori descritti in precedenza sono validi soltanto se MultiLine è True. Se MultiLine è False, premendo TAB lo stato attivo viene sempre spostato sul controllo successivo dell’ordine di tabulazione, indipendentemente dal valore di TabKeyBehavior.

Anche l’effetto della combinazione CTRL+TAB dipende dal valore di MultiLine. Se MultiLine è True, premendo CTRL+TAB viene creata una nuova riga indipendentemente dal valore di TabKeyBehavior. Se MultiLine è False, la pressione di CTRL+TAB non ha alcun effetto.


Proprietà TabOrientation

Specifica la posizione delle linguette in un controllo MultiPage o TabStrip.

Sintassi

oggetto.TabOrientation [= fmTabOrientation]

La sintassi della proprietà TabOrientation è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmTabOrientation	Facoltativa. Indica la posizione delle linguette.
Impostazioni

Le possibili impostazioni di fmTabOrientation sono:

Costante	Valore	Descrizione
fmTabOrientationTop	0	Le linguette appaiono nella parte superiore del controllo (impostazione predefinita).
fmTabOrientationBottom	1	Le linguette appaiono nella parte inferiore del controllo.
fmTabOrientationLeft	2	Le linguette appaiono sul lato sinistro del controllo.
fmTabOrientationRight	3	Le linguette appaiono sul lato destro del controllo.
Osservazioni

Se si utilizzano caratteri TrueType, il testo viene ruotato quando la proprietà TabOrientation è impostata su fmTabOrientationLeft o fmTabOrientationRight. Se si utilizzano caratteri bitmap, il testo non viene ruotato.


Proprietà TabStop

Indica se un oggetto riceve lo stato attivo quando l’utente si sposta con TAB su tale oggetto.

Sintassi

oggetto.TabStop [= Boolean]

La sintassi della proprietà TabStop è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se l’oggetto è compreso nell'ordine di tabulazione.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Indica che l’oggetto è incluso nell'ordine di tabulazione (impostazione predefinita).
False	Quando l’utente si sposta con TAB, l’oggetto viene ignorato pur mantenendo la propria posizione nell’ordine di tabulazione, determinata dalla proprietà TabIndex.


Proprietà Tag

Memorizza informazioni supplementari relative a un oggetto.

Sintassi

oggetto.Tag [= String]

La sintassi della proprietà Tag è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Espressione stringa che identifica l’oggetto. L’impostazione predefinita è una stringa di lunghezza zero ("").
Osservazioni

Utilizzare la proprietà Tag per assegnare una stringa di identificazione a un oggetto senza modificare le impostazioni di altri attributi o proprietà.

È ad esempio possibile utilizzare Tag per identificare in modo chiaro un form o un controllo passato come variabile a una routine.


Proprietà Text

Restituisce o imposta il testo in un controllo TextBox. Modifica la riga selezionata in un controllo ComboBox o ListBox.

Sintassi

oggetto.Text [= String]

La sintassi della proprietà Text è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
String	Facoltativa. Espressione stringa contenente del testo. Il valore predefinito è una stringa di lunghezza zero (“”).
Osservazioni

Per un controllo TextBox, i valori assegnati alla proprietà Text vengono assegnati anche alla proprietà Value.

Per un controllo ComboBox, la proprietà Text può essere utilizzata per aggiornare il valore del controllo. Se il valore della proprietà Text corrisponde a una voce di elenco esistente, il valore della proprietà ListIndex, ovvero l’indice della riga corrente, viene impostato sulla riga corrispondente alla proprietà Text. Se il valore della proprietà Text non corrisponde a una riga, la proprietà ListIndex viene impostata su –1.

Per un controllo ListBox, il valore della proprietà Text deve corrispondere a una voce di elenco esistente. In caso contrario viene generato un errore.

Non è possibile utilizzare la proprietà Text per modificare il valore di una voce di elenco di un controllo ComboBox o ListBox. Per eseguire questa operazione, è necessario utilizzare la proprietà Column o List.

Il colore del testo è determinato dalla proprietà ForeColor.


Proprietà TextAlign

Specifica la modalità di allineamento del testo in un controllo.

Sintassi

oggetto.TextAlign [= fmTextAlign]

La sintassi della proprietà TextAlign è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmTextAlign	Facoltativa. Indica la modalità di allineamento del testo nel controllo.
Impostazioni

Le possibili impostazioni di fmTextAlign sono:

Costante	Valore	Descrizione
fmTextAlignLeft	1	Allinea il primo carattere del testo visualizzato al bordo sinistro dell’area di visualizzazione o di modifica del controllo (impostazione predefinita).
fmTextAlignCenter	2	Centra il testo nell’area di visualizzazione o di modifica del controllo.
fmTextAlignRight	3	Allinea l’ultimo carattere del testo visualizzato al bordo destro dell’area di visualizzazione o di modifica del controllo.
Osservazioni

Per un controllo ComboBox, la proprietà TextAlign ha effetto soltanto sull’area di modifica, e non sull’allineamento del testo nell’elenco. Per le etichette indipendenti, TextAlign determina l’allineamento del contenuto dell’etichetta.


Proprietà TextColumn

Identifica la colonna che verrà visualizzata in un controllo ComboBox o ListBox.

Sintassi

oggetto.TextColumn [= Variant]

La sintassi della proprietà TextColumn è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Variant	Facoltativa. Colonna da visualizzare.
Impostazioni

I valori consentiti per la proprietà TextColumn sono compresi tra –1 e il numero di colonne dell’elenco. Il valore di TextColumn per la prima colonna è 1, il valore per la seconda colonna è 2 e così via. L’impostazione di TextColumn su 0 determina la visualizzazione dei valori ListIndex. L’impostazione di TextColumn su –1 determina la visualizzazione della prima colonna per la quale il valore di ColumnWidths è maggiore di 0.

Osservazioni

Quando l’utente seleziona una riga in un controllo ComboBox o ListBox, la colonna a cui fa riferimento TextColumn viene memorizzata nella proprietà Text. È possibile, ad esempio, impostare un controllo ListBox a colonne multiple contenente i nomi dei giorni festivi in una colonna e le date corrispondenti in una seconda colonna. Per visualizzare i nomi dei giorni festivi, impostare la prima colonna come controllo TextColumn. Per memorizzare le date corrispondenti, specificare la seconda colonna come controllo BoundColumn.

Quando la proprietà Text di un controllo ComboBox viene modificata (ad esempio quando l’utente digita una voce nel controllo), il nuovo testo viene confrontato con la colonna di dati specificata da TextColumn.


Proprietà TextLength

Restituisce la lunghezza in caratteri del testo presente nell’area di modifica di un controllo TextBox o ComboBox.

Sintassi

oggetto.TextLength

La sintassi della proprietà TextLength è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Osservazioni

La proprietà TextLength è di sola lettura. Per un controllo TextBox a righe multiple, TextLength comprende i caratteri LF (avanzamento riga) e CR (ritorno a capo).


Proprietà TopIndex

Imposta e restituisce l’elemento visualizzato nella prima posizione dell’elenco.

Sintassi

oggetto.TopIndex [= Variant]

La sintassi della proprietà TopIndex è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Variant	Facoltativa. Numero dell’elemento dell’elenco visualizzato nella prima posizione. L’impostazione predefinita è 0, ovvero il primo elemento dell’elenco.
Impostazioni

Restituisce il valore –1 se l’elenco è vuoto o non viene visualizzato.


Proprietà TransitionEffect

Specifica l’effetto visivo da utilizzare per il passaggio da una pagina a un’altra.

Sintassi

oggetto.TransitionEffect [= fmTransitionEffect]

La sintassi della proprietà TransitionEffect è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmTransitionEffect	Facoltativa. Indica l’effetto desiderato di transizione tra le pagine.
Impostazioni

Le possibili impostazioni di fmTransitionEffect sono:

Costante	Valore	Descrizione
fmTransitionEffectNone	0	Nessun effetto speciale (impostazione predefinita).
fmTransitionEffectCoverUp	1	La nuova pagina copre la precedente, spostandosi dal basso verso l’alto.
fmTransitionEffectCoverRightUp	2	La nuova pagina copre la precedente, spostandosi dall’angolo inferiore sinistro all’angolo superiore destro.
fmTransitionEffectCoverRight	3	La nuova pagina copre la precedente, spostandosi dal margine sinistro al margine destro.
fmTransitionEffectCoverRightDown	4	La nuova pagina copre la precedente, spostandosi dall’angolo superiore sinistro all’angolo inferiore destro.
fmTransitionEffectCoverDown	5	La nuova pagina copre la precedente, spostandosi dall’alto verso il basso.
fmTransitionEffectCoverLeftDown	6	La nuova pagina copre la precedente, spostandosi dall’angolo superiore destro all’angolo inferiore sinistro.
fmTransitionEffectCoverLeft	7	La nuova pagina copre la precedente, spostandosi dal margine destro a quello sinistro.
fmTransitionEffectCoverLeftUp	8	La nuova pagina copre la precedente, spostandosi dall’angolo inferiore destro all’angolo superiore sinistro.
fmTransitionEffectPushUp	9	La nuova pagina spinge la pagina precedente fuori dall'area di visualizzazione, spostandosi dal basso verso l’alto.
fmTransitionEffectPushRight	10	La nuova pagina spinge la pagina precedente fuori dall'area di visualizzazione, spostandosi da sinistra verso destra.
fmTransitionEffectPushDown	11	La nuova pagina spinge la pagina precedente fuori dall'area di visualizzazione, spostandosi dall’alto verso il basso.
fmTransitionEffectPushLeft	12	La nuova pagina spinge la pagina precedente fuori dall'area di visualizzazione, spostandosi da destra verso sinistra.
Osservazioni

Per specificare la durata di un effetto di transizione, utilizzare la proprietà TransitionPeriod.


Proprietà TransitionPeriod

Specifica la durata in millisecondi di un effetto di transizione.

Sintassi

oggetto.TransitionPeriod [= Long]

La sintassi della proprietà TransitionPeriod è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Long	Facoltativa. Tempo necessario per il passaggio da una pagina a un’altra.
Osservazioni

Qualsiasi valore intero compreso tra zero e 10000 è un’impostazione valida per questa proprietà. L’impostazione della proprietà TransitionPeriod su zero disattiva l’effetto di transizione; l’impostazione di TransitionPeriod su 10000 crea un effetto della durata di 10 secondi.


Proprietà TripleState

Determina se un utente può specificare dall’interfaccia utente lo stato Null per un controllo CheckBox o ToggleButton.

Sintassi

oggetto.TripleState [= Boolean]

La sintassi della proprietà TripleState è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se il controllo supporta lo stato Null.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il pulsante assume in modo ciclico i tre stati.
False	Il pulsante supporta esclusivamente True e False (impostazione predefinita).
Osservazioni

La proprietà TripleState esiste per il controllo OptionButton, anche se è disattivata. Non è possibile impostare su Null il controllo tramite l'interfaccia indipendentemente dal valore di TripleState.

Quando la proprietà TripleState è True, un utente può scegliere tra i valori Null, True e False. Il valore Null viene visualizzato sotto forma di un pulsante ombreggiato.

Quando TripleState è False, l’utente può scegliere tra True e False.

Quando un controllo è impostato su Null non è in grado di generare l'evento Click.

Indipendentemente dall’impostazione della proprietà, il valore Null può sempre essere assegnato al controllo CheckBox o ToggleButton a livello di programmazione. In tal caso il controllo apparirà ombreggiato.


Proprietà Value

Specifica lo stato o il contenuto di un determinato controllo.

Sintassi

oggetto.Value [= Variant]

La sintassi della proprietà Value è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Variant	Facoltativa. Stato o contenuto del controllo.
Impostazioni

Controllo	Descrizione
CheckBox	Numero intero che indica se l’elemento è selezionato:
	Null.   Indica che l’elemento è nello stato Null, ovvero né selezionato né deselezionato.
	–1   True. Indica che l’elemento è selezionato.
	0   False. Indica che l’elemento non è selezionato.
OptionButton	Impostazioni analoghe a quelle per CheckBox.
ToggleButton	Impostazioni analoghe a quelle per CheckBox.
ScrollBar	Numero intero compreso tra i valori specificati per le proprietà Max e Min.
SpinButton	Impostazioni analoghe a quelle per ScrollBar.
ComboBox, ListBox	Valore in BoundColumn relativo alle righe selezionate.
CommandButton	Sempre False.
MultiPage	Numero intero che indica la pagina attiva.
	Zero (0) indica la prima pagina. Il valore massimo è minore di uno rispetto al numero delle pagine.
TextBox	Testo nell’area di modifica.
Osservazioni

Per un controllo CommandButton, l’impostazione della proprietà Value su True in una macro o in una routine inizializza l’evento Click del pulsante.

Per un controllo ComboBox, la modifica del contenuto di Value non modifica il valore di BoundColumn. Per aggiungere o eliminare voci in un controllo ComboBox, è possibile utilizzare i metodi AddItem o RemoveItem.

Value non può essere utilizzata con una casella di riepilogo a selezione multipla.


Proprietà VerticalScrollbarSide

Specifica se la barra di scorrimento verticale viene visualizzata sul lato destro o sul lato sinistro di un form o di una pagina.

Sintassi

oggetto.VerticalScrollbarSide [= fmVerticalScrollbarSide]

La sintassi della proprietà VerticalScrollbarSide è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
fmVerticalScrollbarSide	Facoltativa. Posizione della barra di scorrimento.
Impostazioni

Le possibili impostazioni di fmVerticalScrollbarSide sono:

Costante	Valore	Descrizione
fmVerticalScrollbarSideRight	0	Posiziona la barra di scorrimento sul lato destro (impostazione predefinita).
fmVerticalScrollBarSideLeft	1	Posiziona la barra di scorrimento sul lato sinistro.
Osservazioni

La proprietà VerticalScrollBarSide è particolarmente utile quando il form viene utilizzato in una configurazione in cui la lettura procede da destra verso sinistra.


Proprietà Visible

Specifica se un oggetto è visibile o nascosto.

Sintassi

oggetto.Visible [= Boolean]

La sintassi della proprietà Visible è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se un oggetto è visibile o nascosto.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	L’oggetto è visibile (impostazione predefinita).
False	L’oggetto è nascosto.
Osservazioni

Utilizzare la proprietà Visible per controllare l’accesso a determinate informazioni senza visualizzare le informazioni stesse. È ad esempio possibile utilizzare il valore di un controllo su un form nascosto come criterio per una query.

In fase di progettazione, tutti i controlli sono visibili.


Proprietà WordWrap

Indica se il contenuto di un controllo va a capo automaticamente al termine di una riga.

Sintassi

oggetto.WordWrap [= Boolean]

La sintassi della proprietà WordWrap è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Boolean	Facoltativa. Indica se il controllo si espande per adattarsi alla lunghezza del testo.
Impostazioni

Le possibili impostazioni di Boolean sono:

Valore	Descrizione
True	Il testo va a capo (impostazione predefinita).
False	Il testo non va a capo.
Osservazioni

Per i controlli che supportano sia la proprietà MultiLine che la proprietà WordWrap, quando MultiLine è False, WordWrap viene ignorata.


Proprietà Zoom

Specifica in che misura vengono modificate le dimensioni di un oggetto visualizzato.

Sintassi

oggetto.Zoom [= Integer]

La sintassi della proprietà Zoom è composta dalle seguenti parti:

Parte	Descrizione
oggetto	Obbligatoria. Oggetto valido.
Integer	Facoltativa. Percentuale di ingrandimento o riduzione dell’immagine visualizzata.
Osservazioni

Il valore della proprietà Zoom specifica una percentuale di ingrandimento o riduzione in base alla quale verrà modificata la visualizzazione dell’immagine. Sono validi valori compresi tra 10 e 400. Il valore specificato è una percentuale delle dimensioni originali dell’oggetto. L’impostazione 400 indica pertanto che si desidera ingrandire l’immagine di quattro volte rispetto alle dimensioni originali (ovvero del 400%), mentre l’impostazione 10 indica che si desidera ridurre l’immagine a un decimo (ovvero al 10%) delle dimensioni originali.


tasto di scelta rapida

Carattere utilizzato per la selezione di un oggetto. Premendo ALT e il tasto di scelta rapida di un determinato oggetto, lo stato attivo viene spostato sull'oggetto e vengono inizializzati gli eventi associati. Questi variano a seconda dell'oggetto. Se il codice è associato a un evento, esso viene eseguito quando viene generato l'evento.


colore di sfondo

Colore dell'area client di una finestra vuota o dello schermo, nella quale vengono eseguite tutte le operazioni di disegno e di visualizzazione dei colori.


associato

Definisce un controllo il cui contenuto è associato a una fonte dati specifica, quale una cella o intervallo di celle di un foglio di lavoro.


identificatore di classe (CLSID)

Identificatore univoco (UUID) di un oggetto. Il valore CLSID degli oggetti viene registrato nel database del registro di configurazione del sistema in modo che gli oggetti possano essere caricati e programmati in altre applicazioni.


deselezionare

Disattivare un'opzione (off) o rimuovere un valore.


area client

Sezione di una finestra in cui viene visualizzato l'output di un'applicazione, ad esempio testo o grafica.


ID di contesto

Valore numerico o stringa univoco corrispondente a un oggetto specifico dell'applicazione che consente di creare un collegamento tra l'applicazione e i corrispondenti argomenti della Guida.


gruppo di controlli

Insieme di controlli correlati a livello concettuale o logico. Se correlati a livello logico, i controlli influiscono l'uno sull'altro. Se invece sono correlati a livello concettuale, vengono in genere visualizzati insieme, senza che esista necessariamente un'interrelazione. Impostando un pulsante di un gruppo di pulsanti di opzione, ad esempio, il valore degli altri pulsanti del gruppo viene automaticamente impostato su False.


descrizione dei controlli

Breve descrizione di un controllo, quale Page o Tab, visualizzata quando l'utente posiziona il puntatore del mouse su un controllo senza fare clic. La descrizione dei controlli è simile alla descrizione dei comandi. In Microsoft Forms sono disponibili descrizioni dei comandi che vengono visualizzate in fase di progettazione. Gli sviluppatori possono definire descrizioni dei controlli che verranno visualizzate in fase di esecuzione nelle applicazioni sviluppate.


cursore

Meccanismo che restituisce righe di dati all'applicazione. In un gruppo di risultati indica la posizione corrente nel gruppo di risultati stesso.


spostamento ciclico

Operazione di spostamento all'interno di un gruppo di oggetti seguendo un ordine definito.


formato dei dati

Struttura o aspetto di un'unità di dati, quale un file, un record di database, una cella in un foglio di calcolo o testo in un documento di un programma di elaborazione di testi.


fonte dati

Posizione dei dati a cui un controllo è associato, ad esempio una cella in un foglio di lavoro. Il valore corrente della fonte dati può essere memorizzato nella proprietà Value di un controllo. Nel controllo tuttavia non vengono memorizzati i dati fisici, ma semplicemente visualizzate le informazioni memorizzate nella fonte dati.


controllo dominante

Riferimento per i comandi Allinea e Rendi uguale del menu Formato. Nelle operazioni di allineamento, i controlli selezionati vengono allineati al controllo dominante. Nelle operazioni di ridimensionamento, ai controlli selezionati vengono applicate le dimensioni del controllo dominante.

Il controllo dominante è contraddistinto da quadratini di ridimensionamento bianchi. Negli altri controlli selezionati, i quadratini di ridimensionamento sono neri.


origine del trascinamento

Oggetto o testo trascinato in un'operazione di trascinamento della selezione.


costante enumerata

Le informazioni aggiuntive sui dati enumerati sono disponibili nella descrizione della proprietà, del metodo o dell'evento che utilizza l'enumerazione.


colore di primo piano

Colore selezionato per il disegno o la visualizzazione di testo sullo schermo. In monitor monocromatici, è il colore di una bitmap o di un altro elemento grafico.


blocco della griglia

Distanza tra due punti della griglia adiacenti.


IME (Input Method Editor)

Applicazione che consente di convertire i caratteri digitati in una lingua che supporta il DBCS, come il giapponese o il cinese. Durante la digitazione, vengono visualizzati i possibili equivalenti tra cui l'utente può selezionare quello più adeguato.


proprietà ereditata

Proprietà che ha acquisito le caratteristiche di un'altra classe.


stato della tastiera

Valore restituito che consente di identificare i tasti che sono stati premuti e gli eventuali tasti di modifica delle funzioni della tastiera, ovvero MAIUSC, CTRL e ALT, che sono stati utilizzati.


controllo contenitore OLE

Controllo di Visual Basic che consente di collegare e incorporare oggetti di altre applicazioni in un'applicazione Visual Basic.


codice di stato OLE

Parte del numero di errore di una struttura di dati che restituisce informazioni sulle condizioni di errore. La struttura di dati è definita da OLE.


segnaposto

Carattere utilizzato per mascherare o nascondere un altro carattere per motivi di protezione. Quando ad esempio un utente digita la password, sullo schermo vengono visualizzati asterischi anziché i caratteri effettivamente digitati.


pagina delle proprietà

Proprietà raggruppate in una scheda di una finestra delle proprietà.


RGB

Sistema di colori in base al quale i colori vengono descritti come combinazione di rosso (R), verde (G) e blu (B). Un singolo colore viene definito come serie di tre interi (R,G,B), ciascuno dei quali è compreso tra 0 e 255. 0 indica la totale assenza di un componente del colore, mentre 255 indica la massima intensità di un componente.


colori di sistema

Colori definiti dal sistema operativo per un tipo di monitor e scheda video specifici. Ciascun colore è associato a una parte specifica dell'interfaccia utente, quale un titolo di finestra o un menu.


destinazione

Oggetto in cui viene rilasciato l'oggetto che è stato trascinato.


trasparente

Descrive le situazioni in cui lo sfondo dell'oggetto non è visibile. Anziché lo sfondo, sono visibili gli elementi che si trovano dietro l'oggetto, ad esempio un'immagine utilizzata come sfondo dell'applicazione. Per rendere uno sfondo trasparente, è necessario utilizzare la proprietà BackStyle.


non associato

Descrive un controllo non correlato ad alcuna cella di un foglio di lavoro. Si contrappone a un controllo associato, ovvero un controllo che è collegato a una fonte dati, ad esempio una cella di foglio di lavoro, nella quale è possibile visualizzare e modificare il valore di un controllo.


Definizione di controllo MultiPage

Un controllo MultiPage è un controllo contenente un insieme di una o più pagine.

Ciascun oggetto Page di un controllo MultiPage è un form contenente controlli propri che possono avere un layout specifico. Le pagine di un controllo MultiPage sono in genere impostate come schede con linguette che consentono all'utente di selezionare le singole pagine.

Per impostazione predefinita, un controllo MultiPage include due pagine, denominate Page1 e Page2. Ciascuna di esse è un oggetto Page e insieme rappresentano l'insieme Pages del controllo MultiPage. Le pagine aggiunte in seguito vengono incluse nell'insieme Pages.


Definizione di controllo TabStrip

Un controllo TabStrip è un controllo contenente un insieme di una o più schede.

Ciascun oggetto Tab di un controllo TabStrip è un oggetto distinto che è possibile selezionare. Un controllo TabStrip include inoltre un'area client condivisa da tutte le schede del controllo TabStrip.

Per impostazione predefinita, un controllo TabStrip include due schede, denominate Tab1 e Tab2. Ciascuna di esse è un oggetto Tab e insieme rappresentano l'insieme Tabs del controllo TabStrip. Le schede aggiunte in seguito vengono incluse nell'insieme Tabs.


Utilizzo di un controllo MultiPage o TabStrip

Se si utilizza un unico layout per tutti i dati, utilizzare un controllo TabStrip e associare ciascun gruppo di dati all'oggetto Tab corrispondente. Se si desidera assegnare ai dati layout diversi, utilizzare un controllo MultiPage e assegnare ciascun layout all'oggetto Page corrispondente.

A differenza di un oggetto Page del controllo MultiPage, l'area client di un controllo TabStrip non è un form distinto, ma una parte del form contenente il controllo TabStrip. Il bordo di un controllo TabStrip definisce un'area del form che è possibile associare alle schede. Quando si inserisce un controllo nell'area client di un controllo TabStrip, si aggiunge un controllo nel form contenente il controllo TabStrip.


Suggerimenti per l'utilizzo delle caselle di testo

Il controllo TextBox è un controllo versatile che è possibile gestire tramite le proprietà Text, MultiLine, WordWrap e AutoSize.

La proprietà Text contiene il testo visualizzato nella casella di testo.

La proprietà MultiLine determina se il testo nel controllo TextBox verrà visualizzato su una singola riga o su righe multiple. I caratteri di nuova riga identificano il punto in cui termina una riga e inizia la riga successiva. Se MultiLine è False, il testo viene troncato anziché portato a capo.

La proprietà WordWrap consente di portare a capo le righe di testo che si estendono oltre la larghezza del controllo TextBox, creando righe più brevi corrispondenti alla larghezza del controllo.

Se non si utilizza la proprietà WordWrap, il controllo TextBox inizia una nuova riga di testo ogni volta che incontra un carattere di nuova riga nel testo. Se WordWrap è disattivata, è possibile che le righe di testo non si adattino perfettamente al controllo TextBox. Il controllo TextBox visualizza le parti di testo che rientrano nella larghezza impostata per il controllo e tronca le parti di testo che superano tale dimensione. La proprietà WordWrap è applicabile solo se MultiLine è True.

La proprietà AutoSize controlla il ridimensionamento automatico del controllo TextBox in modo da visualizzare il testo completo. Se si utilizza AutoSize con un controllo TextBox, la larghezza di TextBox viene ridotta o ingrandita a seconda della quantità di testo contenuto nel controllo TextBox e alla dimensione del carattere utilizzato per visualizzare il testo.

La proprietà AutoSize risulta particolarmente utile nei seguenti casi:

•	Visualizzazione di una didascalia composta da una o più righe.

•	Visualizzazione del contenuto di un controllo TextBox a riga singola.

•	Visualizzazione del contenuto di un controllo TextBox a righe multiple di sola lettura.

Nota   Evitare di utilizzare la proprietà AutoSize con un controllo TextBox vuoto che utilizza anche le proprietà MultiLine e WordWrap. Se si immette del testo in un controllo TextBox con queste proprietà, il controllo viene ridimensionato automaticamente e il risultato sarà una casella con larghezza di un solo carattere ma lunga come la riga di testo.


Creazione di una casella di riepilogo standard

1	Nella finestra Proprietà, selezionare la proprietà ListStyle.

2	Fare clic sulla freccia rivolta verso il basso per visualizzare l'elenco degli stili disponibili.

3	Selezionare Plain dall'elenco.


Creazione di una casella di riepilogo contenente pulsanti di opzione o caselle di controllo

1	Nella finestra Proprietà, selezionare la proprietà ListStyle.

2	Fare clic sulla freccia rivolta verso il basso per visualizzare l'elenco degli stili disponibili.

3	Selezionare Option dall'elenco.

Se la proprietà ListStyle è impostata su Option, la proprietà MultiSelect determina se nell'elenco vengono visualizzate caselle di controllo o pulsanti di opzione. Se MultiSelect è impostata su Single, nell'elenco verranno visualizzati pulsanti di opzione, se è impostata su Multi o Extended verranno visualizzate caselle di controllo.


Stili del controllo ListBox

È possibile scegliere tra due stili di presentazione per un controllo ListBox. Lo stile scelto determina il metodo di selezione di un elemento dell'elenco.

Se lo stile è Plain, ciascun elemento si trova in una riga distinta. L'utente seleziona un elemento evidenziando una o più righe.

Se lo stile è Option, all'inizio di ciascuna riga viene visualizzato un pulsante di opzione o una casella di controllo. Questo stile consente all'utente di selezionare un elemento facendo clic sul pulsante di opzione o sulla casella di controllo corrispondente. Le caselle di controllo vengono visualizzate solo se la proprietà MultiSelect è impostata su True.


Differenze tra DataObject e gli Appunti

Sia l'oggetto DataObject che gli Appunti consentono di spostare i dati da una posizione a un'altra. Per utilizzare correttamente DataObject o gli Appunti, è necessario tenere presente alcuni fattori importanti:

•	Sia in DataObject che negli Appunti è possibile memorizzare più dati contemporaneamente, a condizione che il loro formato dati sia diverso. Se si memorizzano dati in un formato già utilizzato, questi verranno salvati mentre i dati precedenti verranno eliminati.

•	Gli Appunti supportano formati immagine e formati testo. DataObject supporta attualmente solo formati testo.

•	Il contenuto dell'oggetto DataObject viene mantenuto solo durante l'esecuzione dell'applicazione, a differenza del contenuto degli Appunti che viene conservato fino a quando il sistema operativo è in esecuzione. In questo modo è possibile inserire i dati negli Appunti e chiudere l'applicazione di origine senza perdere i dati, mentre se si chiude l'applicazione utilizzata per inserire i dati in DataObject, i dati non vengono conservati.

•	DataObject è un oggetto OLE standard, a differenza degli Appunti. Questi ultimi supportano operazioni di spostamento standard (copia, taglia e incolla), ma non operazioni di trascinamento della selezione. Se si desidera che l'applicazione supporti il trascinamento della selezione, è necessario utilizzare DataObject.

Suggerimento   È possibile definire nomi personalizzati per i diversi formati dei dati quando si utilizza il metodo SetText per spostare i dati negli Appunti o in DataObject. In questo modo è possibile distinguere il testo spostato dall'applicazione dal testo spostato dall'utente.


Visualizzare o nascondere la casella degli strumenti

Nel menu Visualizza verificare se accanto al comando Casella degli strumenti è visualizzato un segno di spunta. Se il segno di spunta è presente, la casella degli strumenti è visualizzata. In caso contrario, è nascosta.

Eseguire una delle seguenti operazioni:

•	Per visualizzare la casella degli strumenti è necessario che davanti a Casella degli strumenti sia visualizzato un segno di spunta. In caso contrario, scegliere Casella degli strumenti dal menu Visualizza.

•	Per nascondere la casella degli strumenti, è necessario che davanti a Casella degli strumenti non sia visualizzato un segno di spunta. In caso contrario, scegliere Casella degli strumenti dal menu Visualizza.


Definizione di casella degli strumenti

La casella degli strumenti identifica i diversi controlli che è possibile aggiungere in un form oppure in un controllo Frame o Page.

È possibile personalizzare la casella degli strumenti in vari modi, tra i quali:

•	Aggiunta di pagine alla casella degli strumenti.

•	Spostamento dei controlli da una pagina a un'altra.

•	Ridenominazione delle pagine.

•	Aggiunta di altri controlli, tra i quali i controlli ActiveX, alla casella degli strumenti.

•	Copia di controlli personalizzati dal form alla casella degli strumenti.

I pulsanti OK e Annulla, ad esempio, sono casi particolari di controllo CommandButton. L'aggiunta di modelli di questi pulsanti nella casella degli strumenti consente di utilizzarli rapidamente in altri form.


Aggiunta di un controllo personalizzato nella casella degli strumenti

1	Inserire un controllo nel form e personalizzarlo.

Per creare un pulsante OK, ad esempio, inserire un controllo CommandButton nel form, impostare la proprietà Caption su OK e la proprietà Default su True.

2	Selezionare il controllo personalizzato.

3	Trascinare il controllo sulla casella degli strumenti.

Nota   Quando si trascina un controllo sulla casella degli strumenti, vengono trasferiti solo i valori delle proprietà e non il codice eventualmente scritto per il controllo. È necessario quindi scrivere del nuovo codice per l'icona oppure copiare il codice dal controllo del form al controllo sulla casella degli strumenti.


Aggiunta di un controllo in un form

Per aggiungere un controllo della casella degli strumenti in un form, è possibile utilizzare uno dei metodi descritti di seguito, che consentono inoltre di inserire un controllo in un controllo Frame, TabStrip o MultiPage nel form.

•	Fare clic su un controllo nella casella degli strumenti e quindi nel form. Il controllo verrà visualizzato con le dimensioni predefinite, che è quindi possibile modificare trascinando il controllo.

•	Trascinare un controllo dalla casella degli strumenti al form; il controllo verrà visualizzato con le dimensioni predefinite.

•	Fare doppio clic sul controllo nella casella degli strumenti e fare quindi clic nel form tante volte quanti sono i controlli che si desidera creare. Per creare quattro  pulsanti di comando, ad esempio, è necessario fare doppio clic sul controllo CommandButton nella casella degli strumenti e fare quindi clic quattro volte nel form.


Aggiunta di un controllo nella casella degli strumenti

1	Fare clic con il pulsante destro del mouse sull'icona di un controllo nella casella degli strumenti oppure su un'area vuota di una pagina nella casella degli strumenti.

2	Scegliere Controlli aggiuntivi dal menu di scelta rapida.

3	Nell'elenco Controlli disponibili, selezionare i nuovi controlli.

4	Fare clic su OK.


Rimozione di un elemento dalla casella degli strumenti

1	Nella casella degli strumenti, fare clic con il pulsante destro del mouse sull'icona dell'elemento che si desidera rimuovere.

2	Scegliere Rimuovi dal menu di scelta rapida. Il comando includerà il nome del controllo selezionato.

Nota   Se si desidera rimuovere un controllo, è possibile scegliere Controlli aggiuntivi dal menu di scelta rapida e deselezionare le caselle di controllo di tutti i controlli da rimuovere.


Personalizzazione di un'icona della casella degli strumenti

1	Fare clic con il pulsante destro del mouse su un'icona della casella degli strumenti.

2	Scegliere Personalizza dal menu di scelta rapida.

3	Eseguire una delle seguenti operazioni:

•	Per modificare la descrizione del comando, immettere il nuovo testo che si desidera visualizzare come descrizione.

•	Per modificare l'icona, scegliere Modifica immagine. Scegliere quindi il colore che si desidera utilizzare e selezionare il pixel dell'immagine al quale si desidera applicare il colore.

•	Per assegnare una nuova bitmap, scegliere Carica immagine. Individuare quindi il file contenente la bitmap che si desidera utilizzare come icona. Se si tenta di caricare un'immagine di dimensioni maggiori dell'icona, viene generato un errore.


Definizione di descrizione del comando

La descrizione del comando è un breve testo, in genere composto da poche parole, che viene visualizzato quando l'utente posiziona il puntatore del mouse su un controllo o su un elemento dell'interfaccia utente senza fare clic su di esso. È possibile personalizzare le descrizioni dei controlli e degli elementi della casella degli strumenti.

Il valore predefinito per un nuovo controllo copiato da un form nella casella degli strumenti è “Nuovo” seguito dal tipo di controllo. La descrizione predefinita per un controllo CommandButton personalizzato (quale OK) è, ad esempio, “Nuovo pulsante di comando”. Se a un controllo non è associata una descrizione, il valore predefinito è “Sconosciuto”.

Nota   Le descrizioni dei comandi di Microsoft Forms sono disponibili in modalità progettazione. Per tutti i controlli utilizzabili per la creazione di form è disponibile la proprietà ControlTipText che consente di impostare una descrizione per i controlli, che verrà invece visualizzata durante l'esecuzione dell'applicazione sviluppata.


Personalizzazione della descrizione dei controlli nella casella degli strumenti

1	Selezionare il controllo nella casella degli strumenti.

2	Fare clic con il pulsante destro del mouse.

3	Scegliere Personalizza dal menu di scelta rapida. Il comando Personalizza includerà il nome del controllo, ad esempio “Personalizza Label”.

4	Digitare la nuova descrizione nella casella Descrizione controllo.

5	Fare clic su OK.


Impostazione della descrizione di una pagina della casella degli strumenti

1	Selezionare una pagina della casella degli strumenti.

2	Fare clic con il pulsante destro del mouse.

3	Scegliere Rinomina dal menu di scelta rapida.

4	Digitare la nuova descrizione nella casella Descrizione controllo.

5	Fare clic su OK.


Modifica del nome di una pagina della casella degli strumenti

1	Fare clic con il pulsante destro del mouse sulla pagina della casella degli strumenti che si desidera rinominare.

2	Scegliere Rinomina dal menu di scelta rapida.

3	Digitare il nome desiderato nella casella Didascalia.

4	Fare clic su OK.


Modifica dell'ordine delle pagine della casella degli strumenti

1	Fare clic con il pulsante destro del mouse su una pagina qualsiasi della casella degli strumenti.

2	Scegliere Sposta dal menu di scelta rapida.

3	Selezionare il nome della pagina che si desidera spostare.

4	Scegliere Sposta in alto o Sposta in basso fino a quando la pagina si trova nella posizione desiderata nell'elenco.

5	Fare clic su OK.


Creazione di una pagina della casella degli strumenti

1	Fare clic con il pulsante destro del mouse su una pagina qualsiasi della casella degli strumenti. La nuova pagina verrà inserita dopo la pagina selezionata.

2	Scegliere Nuova pagina.


Eliminazione di una pagina della casella degli strumenti

1	Fare clic con il pulsante destro del mouse sulla pagina della casella degli strumenti che si desidera eliminare.

2	Scegliere Elimina pagina. Verranno eliminati anche tutti i controlli inclusi nella pagina.


Importazione o esportazione di una pagina della casella degli strumenti

1	Fare clic con il pulsante destro del mouse su una pagina qualsiasi della casella degli strumenti. La pagina importata verrà inserita dopo la pagina selezionata.

2	Eseguire una delle seguenti operazioni:

•	Per importare una pagina, scegliere Importa pagina e selezionare il nome del file della pagina che si desidera importare.

•	Per esportare una pagina, scegliere Esporta pagina e immettere il nome del file nel quale verrà memorizzata la copia della pagina della casella degli strumenti. La pagina esportata non verrà eliminata dalla casella degli strumenti.

3	Fare clic su OK.


Spostamento di un elemento in una pagina diversa della casella degli strumenti

1	Selezionare un controllo in una pagina qualsiasi della casella degli strumenti.

2	Trascinare il controllo sulla linguetta della nuova pagina e tenere premuto il pulsante del mouse fino a quando la pagina viene visualizzata in primo piano nella casella degli strumenti.

3	Trascinare il controllo sull'area principale della pagina.

Nota   Se la pagina sulla quale si desidera posizionare il controllo non è visibile, è possibile allargare la casella degli strumenti in modo da visualizzare le linguette di tutte le pagine e quindi trascinare il controllo sulla pagina desiderata.


Modifica delle dimensioni della casella degli strumenti

1	Spostare il puntatore del mouse su un bordo o un angolo della casella degli strumenti. Il puntatore assumerà la forma di una freccia a due punte.

2	Trascinare il bordo o l'angolo della casella degli strumenti per modificarne le dimensioni.


Assegnazione di un argomento della Guida personalizzato a un controllo

In questa procedura si suppone che sia stato creato un file della Guida personalizzato e che sia stato associato al progetto. La procedura per l'associazione di un file della Guida a un progetto è diversa a seconda dell'ambiente del progetto.

1	Selezionare un controllo per il quale è stato creato un argomento della Guida personalizzato.

2	Nella finestra Proprietà selezionare la proprietà HelpContextID.

3	Immettere l'ID di contesto dell'argomento del file della Guida personalizzato.


Personalizzazione dei file della Guida

I file della Guida personalizzati consentono agli sviluppatori di fornire informazioni agli utenti sull'utilizzo delle applicazioni.

Per creare un file della Guida personalizzato, utilizzare uno strumento per la creazione dei file della Guida di Windows.

A ciascun controllo dell'applicazione è possibile associare un argomento specifico del file della Guida personalizzato. Quando l'applicazione è in esecuzione, l'argomento della Guida può essere visualizzato selezionando il controllo e premendo F1.


Assegnazione di un tasto di scelta rapida

1	In modalità progettazione, selezionare il controllo nel form.

2	Nella finestra Proprietà selezionare la proprietà Accelerator.

3	Immettere un singolo carattere come valore di Accelerator.

Suggerimento   Utilizzare un carattere della didascalia del controllo. Si noti che il carattere selezionato appare sottolineato nella didascalia del controllo.


Assegnazione di un tasto di scelta rapida a un oggetto Page o Tab

1	In modalità progettazione, selezionare un singolo oggetto Page o Tab. Assicurarsi che venga selezionato l'oggetto Page o Tab, non il controllo MultiPage o TabStrip corrispondente. La didascalia dell'oggetto Page o Tab selezionato verrà racchiusa da un rettangolo.

2	Fare clic con il pulsante destro del mouse sull'oggetto Page o Tab selezionato.

3	Scegliere Rinomina dal menu di scelta rapida.

4	Nella finestra di dialogo Rinomina, digitare un singolo carattere nella casella Tasto di scelta rapida.

Suggerimento   Utilizzare un carattere della didascalia del controllo. Si noti che il carattere selezionato appare sottolineato nella didascalia del controllo.


Assegnazione di una descrizione a un oggetto Page o Tab

1	Selezionare un singolo oggetto Page o Tab.

Assicurarsi che venga selezionato l'oggetto Page o Tab, non il controllo MultiPage o TabStrip corrispondente. La didascalia dell'oggetto Page o Tab selezionato verrà racchiusa da un rettangolo.

2	Fare clic con il pulsante destro del mouse sull'oggetto Page o Tab selezionato.

3	Scegliere Rinomina dal menu di scelta rapida.

4	Nella casella Descrizione controllo, digitare la stringa che si desidera utilizzare come descrizione del controllo.

5	Fare clic su OK.

Suggerimento   Per assegnare una descrizione a un controllo MultiPage o TabStrip, utilizzare la proprietà ControlTipText.


Assegnazione di una descrizione a un controllo

1	Selezionare il controllo.

2	Nella finestra Proprietà selezionare la proprietà ControlTipText.

È inoltre possibile impostare il valore di ControlTipText tramite il codice.

3	Immettere la stringa che si desidera utilizzare come descrizione del controllo.

Suggerimento   Per assegnare una descrizione a un oggetto Page o Tab, utilizzare il comando Rinomina del menu di scelta rapida dell'oggetto Page o Tab.


Definizione di descrizione del controllo

La descrizione del controllo è una breve frase che descrive un controllo o un oggetto Page o Tab. Viene visualizzata quando l'utente posiziona il puntatore del mouse su un controllo senza fare clic su di esso. La descrizione del controllo è molto simile alla descrizione dei comandi. La differenza consiste nel fatto che in Microsoft Forms la descrizione del controllo corrisponde alla descrizione visualizzata in fase di progettazione, mentre per i controlli delle applicazioni create viene impostata dagli sviluppatori e verrà quindi visualizzata solo in fase di esecuzione.

Se si assegna una descrizione a un controllo MultiPage o TabStrip, la descrizione dei singoli oggetti Page o Tab all'interno del controllo MultiPage o TabStrip non verrà visualizzata.


Assegnazione di una didascalia

Per assegnare una didascalia a un controllo CheckBox, CommandButton, Frame, Label, OptionButton o ToggleButton:

1	Visualizzare la finestra Proprietà del controllo.

2	Selezionare la proprietà Caption.

3	Immettere il testo che si desidera utilizzare come didascalia.

Per assegnare una didascalia a un oggetto Page o Tab:

1	Selezionare il controllo MultiPage o TabStrip contenente l'oggetto Page o Tab.

2	Selezionare il singolo oggetto Page o Tab. La didascalia dell'oggetto Page o Tab selezionato verrà racchiusa da un rettangolo.

3	Fare clic con il pulsante destro del mouse sul controllo MultiPage o TabStrip.

4	Scegliere Rinomina dal menu di scelta rapida.

5	Nella casella Didascalia digitare il testo che si desidera utilizzare come didascalia.

6	Fare clic su OK.


Definizione di didascalia

La didascalia è un testo descrittivo visualizzato direttamente su un controllo o accanto ad esso. È possibile assegnare una didascalia ai controlli CheckBox, CommandButton, Frame, Label, OptionButton e ToggleButton. Anche gli oggetti Page e Tab, che fanno parte dei controlli MultiPage e TabStrip, possono avere una didascalia.


Impostazione dell'ordine di tabulazione nella finestra di dialogo Ordine di tabulazione

1	Assicurarsi che non sia selezionato alcun controllo.

2	Fare clic con il pulsante destro del mouse all'interno del form, ma non su un controllo.

3	Scegliere Ordine di tabulazione dal menu di scelta rapida.

4	Selezionare il nome del controllo di cui si desidera modificare la posizione nell'ordine di tabulazione.

5	Scegliere Sposta in alto o Sposta in basso fino a quando il nome del controllo assume la posizione desiderata nell'ordine di tabulazione.


Impostazione dell'ordine di tabulazione con la proprietà TabIndex

1	Definire l'ordine di tabulazione che si desidera utilizzare per il form.

L'indice di tabulazione del primo controllo nell'ordine di tabulazione è 0, l'indice di tabulazione del secondo è 1 e così via.

2	Selezionare un controllo nell'ordine di tabulazione.

3	Nella finestra Proprietà selezionare la proprietà TabIndex.

4	Immettere il numero appropriato per definire la posizione del controllo nell'ordine di tabulazione.


Modifica dell'ordine delle pagine in un controllo MultiPage o TabStrip

1	Selezionare una pagina qualsiasi nel controllo MultiPage o TabStrip.

2	Fare clic con il pulsante destro del mouse sulla didascalia della pagina.

3	Scegliere Sposta dal menu di scelta rapida.

4	Nella finestra di dialogo Sposta, selezionare l'oggetto Page o Tab che si desidera spostare.

5	Scegliere Sposta in alto o Sposta in basso per modificare la posizione della pagina.

6	Al termine delle modifiche, fare clic su OK.

Nota   È inoltre possibile utilizzare la proprietà Index per modificare l'ordine delle pagine tramite la finestra Proprietà. L'indice della prima pagina è 0, l'indice della seconda è 1 e così via.


Modifica delle dimensioni del form

In fase di progettazione:

•	Trascinare il quadratino di ridimensionamento del form fino a ottenere le dimensioni desiderate.

In fase di esecuzione:

•	Impostare le proprietà Height e Width del form sui valori desiderati.


Modifica della posizione del form

Tramite l'interfaccia utente:

•	Trascinare la barra del titolo fino a quando il form raggiunge la posizione desiderata.

In fase di progettazione:

•	Impostare le proprietà Left e Top del form sui valori desiderati. È possibile impostare queste proprietà nella finestra Proprietà o tramite il codice.


Protezione di informazioni riservate

Molte applicazioni utilizzano dati che dovrebbero essere disponibili soltanto per determinati utenti. Di seguito sono elencati suggerimenti per la protezione di informazioni riservate in Microsoft Forms:

•	Prevedere del codice per nascondere un controllo e i relativi dati agli utenti non autorizzati. La proprietà Visible consente di rendere visibile o invisibile un controllo. Per ulteriori informazioni sulla proprietà Visible, fare clic qui [image].

•	Prevedere del codice che imposti lo stesso colore per lo sfondo e per gli elementi in primo piano quando l'applicazione viene eseguita da un utente non autorizzato. In tal modo, le informazioni riservate non saranno visibili per gli utenti non autorizzati. Le proprietà ForeColor e BackColor determinano il colore di primo piano e il colore di sfondo. Per informazioni sulla proprietà ForeColor, fare clic qui [image]. Per informazioni sulla proprietà BackColor, fare clic qui [image].

•	Disattivare il controllo quando l'applicazione viene eseguita da utenti non autorizzati. La proprietà Enabled determina l'attivazione o disattivazione di un controllo. Per informazioni sulla proprietà Enabled, fare clic qui [image].

•	Richiedere una password per l'accesso all'applicazione o a un controllo specifico. È possibile utilizzare segnaposto che verranno visualizzati al posto dei caratteri digitati dall'utente. La proprietà PasswordChar consente di definire i caratteri segnaposto. Per informazioni sulla proprietà PasswordChar, fare clic qui [image].

Nota   L'utilizzo di password o di qualsiasi altra tecnica elencata può migliorare la riservatezza dei dati dell'applicazione, ma non garantisce la protezione totale dei dati da accessi non autorizzati.


Creazione di un controllo che si adatti automaticamente alle dimensioni dei dati

Nella finestra Proprietà impostare la proprietà AutoSize su True.


Modifica dell'aspetto di un controllo

In Microsoft Forms sono disponibili varie proprietà che consentono di definire l'aspetto dei controlli nell'applicazione:

•	ForeColor

•	BackColor, BackStyle

•	BorderColor, BorderStyle

•	SpecialEffect

ForeColor determina il colore di primo piano. Tale colore viene applicato al testo associato al controllo, ad esempio alla didascalia o al contenuto del controllo.

BackColor e BackStyle vengono applicate allo sfondo del controllo. Lo sfondo è l'area compresa entro i margini del controllo (ad esempio l'area che circonda il testo di un controllo) ad esclusione del bordo del controllo. BackColor determina il colore di sfondo. BackStyle determina se lo sfondo è trasparente. Lo sfondo trasparente risulta utile se la struttura dell'applicazione comprende un'immagine come sfondo principale e si desidera visualizzare tale immagine attraverso il controllo.

Le proprietà BorderColor, BorderStyle e SpecialEffect possono essere utilizzate per il bordo del controllo. BorderStyle o SpecialEffect consentono di impostare il tipo di bordo. È possibile utilizzare una sola di queste proprietà alla volta. Quando si assegna un valore a una di queste proprietà, il sistema imposta l'altra su None. SpecialEffect consente di scegliere tra diversi stili di bordo, ma consente di utilizzare soltanto i colori di sistema come colori per il bordo. BorderStyle supporta un solo stile di bordo, ma consente di adottare qualsiasi colore che rappresenti un'impostazione valida per BorderColor. BorderColor specifica il colore del bordo del controllo ed è valida soltanto se una delle proprietà definite per il bordo è BorderStyle.


Operazioni eseguibili con un'immagine in un controllo Image

Un controllo Image non è una vera e propria immagine, ma un contenitore per immagini memorizzate in un file separato. Le proprietà del controllo Image non consentono di modificare l'immagine, ma di specificarne la modalità di visualizzazione nel controllo.

Il controllo Image è utilizzabile come immagine di sfondo per l'applicazione. Per ottenere questo risultato, assegnare a Image le stesse dimensioni del form ed inserire altri controlli sopra lo sfondo.


Allineamento del testo in un controllo

1	Nella finestra Proprietà scegliere la proprietà TextAlign.

2	Fare clic sulla freccia rivolta verso il basso accanto al valore della proprietà per visualizzare l'elenco delle scelte disponibili.

3	Scegliere uno dei seguenti valori:

•	Left—per allineare il testo al margine sinistro del controllo.

•	Right—per allineare il testo al margine destro del controllo.

•	Center—per centrare il testo rispetto alla lunghezza del controllo.

TextAlign è disponibile per i controlli ComboBox, Label e TextBox.


Visualizzare e nascondere la griglia

1	Scegliere Opzioni dal menu Strumenti.

2	Selezionare la scheda Generale.

3	Eseguire una delle seguenti operazioni:

•	Per visualizzare la griglia, selezionare la casella di controllo Mostra griglia.

•	Per nascondere la griglia, deselezionare la casella di controllo Mostra griglia.

4	Scegliere OK.


Adattamento alla griglia

1	Selezionare il controllo.

2	Scegliere Adatta alla griglia dal menu Formato.

Microsoft Forms modifica le dimensioni del controllo selezionato, in modo che ciascun angolo sia allineato a un punto della griglia.


Adattamento delle dimensioni

1	Selezionare il controllo.

2	Scegliere Adatta dal menu Formato.

Le dimensioni del controllo vengono impostate in modo che siano sufficienti per visualizzare l'immagine o il testo assegnato alla proprietà Caption o Text.


Assegnazione delle stesse dimensioni a più controlli

1	Selezionare tutti i controlli ai quali si desidera assegnare le stesse dimensioni.

2	Selezionare il controllo dominante.

3	Scegliere Rendi uguale dal menu Formato.

4	Nel sottomenu scegliere uno dei seguenti comandi:

•	Larghezza—per assegnare a tutti i controlli selezionati la stessa larghezza del controllo dominante.

•	Altezza—per assegnare a tutti i controlli selezionati la stessa altezza del controllo dominante.

•	Entrambe—per assegnare a tutti i controlli selezionati la stessa altezza e larghezza del controllo dominante.


Allineamento di controlli

1	Selezionare i controlli da allineare.

2	Selezionare il controllo dominante.

3	Scegliere Allinea dal menu Formato.

4	Scegliere uno dei seguenti comandi dal sottomenu per allineare la parte specificata di ciascun controllo selezionato alla stessa parte del controllo dominante:

•	A sinistra—per allineare il margine sinistro dei controlli.

•	Asse orizzontale—per allineare il centro di ciascun controllo. Il centro di ciascun controllo selezionato risulta allineato a un'ipotetica linea verticale passante per il centro del controllo dominante.

•	A destra—per allineare il margine destro dei controlli.

•	In alto—per allineare il margine superiore dei controlli.

•	Asse verticale—per allineare il centro di ciascun controllo. Il centro di ciascun controllo selezionato risulta allineato a un'ipotetica linea orizzontale passante per il centro del controllo dominante.

•	In basso—per allineare il margine inferiore dei controlli.

•	Alla griglia—per allineare l'angolo superiore sinistro di ciascun controllo selezionato al punto più vicino della griglia. Si noti che questa impostazione non dipende dalla posizione del controllo dominante.

Nota   A ciascun comando del menu è associata una piccola immagine, che illustra la modalità di allineamento dei controlli.


Regolazione della spaziatura orizzontale e verticale tra i controlli

1	Selezionare i controlli per i quali si desidera regolare la spaziatura.

2	Scegliere Spaziatura orizzontale o Spaziatura verticale dal menu Formato.

3	Nel sottomenu scegliere uno dei seguenti comandi:

•	Rendi uguale—per uniformare la spaziatura orizzontale e verticale tra i controlli. La quantità di spaziatura orizzontale e verticale varierà a seconda dell'area disponibile per la visualizzazione dei controlli e della larghezza complessiva di tutti i controlli.

•	Aumenta—per aumentare lo spazio tra i controlli di un blocco della griglia.

•	Diminuisci—per ridurre lo spazio tra i controlli di un blocco della griglia.

•	Rimuovi—per rimuovere lo spazio tra i controlli. I controlli non sono sovrapposti, ma adiacenti.


Disposizione dei pulsanti

1	Selezionare i controlli CommandButton da ridisporre.

2	Scegliere Disponi pulsanti dal menu Formato.

3	Nel sottomenu scegliere uno dei seguenti comandi:

•	In basso—per affiancare i pulsanti a partire dall'angolo inferiore sinistro del form, con allineamento del margine inferiore di ciascun pulsante.

•	A destra—per disporre i pulsanti in colonna a partire dall'angolo superiore destro del form, con allineamento del margine destro di ciascun pulsante.

Dopo aver disposto i pulsanti, scegliere Spaziatura orizzontale o Spaziatura verticale dal menu Formato per modificare la spaziatura tra i pulsanti.

Suggerimento   Per posizionare i pulsanti vicino al bordo inferiore o destro del form, selezionare un valore maggiore per la densità per la griglia. La modifica delle dimensioni della griglia dopo il posizionamento dei pulsanti non determinerà lo spostamento dei pulsanti stessi.


Centrare i controlli in un form

1	Selezionare i controlli o i gruppi da centrare.

2	Scegliere Centra nel form dal menu Formato.

3	Nel sottomenu scegliere uno dei seguenti comandi:

•	Asse verticale

•	Asse orizzontale


Operazioni eseguibili con i gruppi di controlli

Un gruppo corrisponde a due o più controlli di un form, considerabili come singola unità. È possibile includere in un gruppo qualsiasi controllo del form. Dopo aver raggruppato i controlli, è possibile eseguire operazioni sull'intero gruppo o selezionarne i singoli oggetti.

Microsoft Forms consente di intervenire sui gruppi e sui controlli di un gruppo in vari modi. Dopo aver selezionato un gruppo, è possibile eseguire una qualsiasi delle seguenti operazioni:

•	Ridimensionamento simultaneo di tutti i controlli del gruppo. Per ulteriori informazioni, fare clic qui [image].

•	Annullamento del raggruppamento, per rendere indipendenti i vari controlli. Per ulteriori informazioni, fare clic qui [image].

•	Visualizzazione del menu di scelta rapida per il gruppo, che consente l'accesso rapido ai comandi validi per il gruppo. Per ulteriori informazioni, fare clic qui [image].

•	Selezione di un controllo singolo del gruppo senza annullare il raggruppamento. Ciò consente di modificare le impostazioni delle proprietà di un singolo controllo senza intervenire sugli altri controlli del gruppo. Per ulteriori informazioni, fare clic qui [image].


Trasparenza in Microsoft Forms

Microsoft Forms supporta la trasparenza in due aree: nello sfondo di alcuni controlli e nelle bitmap utilizzate su determinati controlli.

La proprietà BackStyle determina se un controllo è trasparente. Un controllo trasparente consente di visualizzare gli elementi che si trovano dietro il form. Ciò risulta utile se per il form è impostato uno sfondo decorativo e si desidera ridurre al minimo la parte di tale sfondo nascosta dietro i controlli. Per ulteriori informazioni su come rendere trasparente un controllo, fare clic qui [image].

Molti controlli di Microsoft Forms supportano la visualizzazione di bitmap. Alcuni controlli supportano le bitmap trasparenti, ovvero le bitmap in cui uno o più colori di sfondo sono trasparenti. La trasparenza delle bitmap non è determinata da alcuna proprietà dei controlli, bensì dal colore del pixel posto all'estremità inferiore sinistra dell'immagine. In Microsoft Forms non è disponibile uno strumento che consente di modificare una bitmap e renderla trasparente. Tale operazione deve essere eseguita tramite un editor di immagini.

In Microsoft Forms, le bitmap sono sempre trasparenti sui seguenti controlli:

•	CheckBox

•	CommandButton

•	Label

•	OptionButton

•	ToggleButton

Le immagini trasparenti possono a volte apparire offuscate. Per eliminare questo effetto, è necessario visualizzare l'immagine in un controllo che supporta immagini opache.

Se si utilizza una bitmap trasparente su un controllo che non supporta le bitmap trasparenti, la bitmap verrà visualizzata in modo corretto, ma non sarà possibile visualizzare gli elementi posti dietro di essa. In Microsoft Forms, i seguenti controlli non supportano le bitmap trasparenti:

•	La finestra del form (UserForm)

•	Frame

•	Image

•	MultiPage


Definizione di menu di scelta rapida

Un menu di scelta rapida è un menu che viene visualizzato quando si fa clic su un oggetto con il pulsante destro del mouse. In Microsoft Forms, i menu di scelta rapida sono disponibili per i seguenti oggetti:

•	La casella degli strumenti, ogni pagina della casella e ogni elemento nelle pagine.

•	I singoli controlli di un form.

•	I gruppi di controlli (creati con il comando Raggruppa).

•	I contenitori (quali UserForm).

•	I singoli oggetti Page di un controllo MultiPage.

•	I singoli oggetti Tab di un controllo TabStrip.

•	I controlli multipli non raggruppati.

I comandi di un menu di scelta rapida variano a seconda dell'oggetto selezionato. Se ad esempio si selezionano più controlli non raggruppati, il menu di scelta rapida comprenderà il comando Raggruppa, mentre il menu di scelta rapida per la casella degli strumenti non conterrà tale comando.

Per visualizzare il menu di scelta rapida per un controllo o un contenitore, fare clic con il pulsante destro sull'oggetto.

Per ulteriori informazioni sulla visualizzazione del menu di scelta rapida per un controllo MultiPage o un oggetto Page, fare clic qui [image].

Per ulteriori informazioni sulla visualizzazione del menu di scelta rapida per un controllo TabStrip o un oggetto Tab, fare clic qui [image].


Inserimento di dati in un controllo ListBox o ComboBox

In un controllo ListBox o ComboBox a colonna singola, il metodo AddItem rappresenta una tecnica efficace per l'aggiunta di voci all'elenco. In un controllo ListBox o ComboBox a colonne multiple, le proprietà List e Column consentono di utilizzare un'altra tecnica, ovvero il caricamento dell'elenco da una matrice bidimensionale.


Operazioni eseguibili in un controllo ListBox o ComboBox a colonne multiple

Per controllare la larghezza delle colonne di un controllo ListBox o ComboBox a colonne multiple, è possibile specificare nella proprietà ColumnWidths la larghezza in punti di tutte le colonne. Se si specifica zero per una determinata colonna, tale colonna e i relativi dati verranno nascosti.

Per rendere invisibili tutte le colonne di un controllo ListBox o ComboBox meno una, è possibile identificare la colonna di dati da visualizzare tramite la proprietà TextColumn.

In modo analogo, specificando un numero di colonna nella proprietà BoundColumn sarà possibile determinare quale colonna di valori verrà utilizzata per il controllo quando l'utente esegue una selezione.


Aggiunta di elementi a un elenco tramite la proprietà List o Column

1	Creare un controllo ListBox o ComboBox a colonne multiple.

2	Creare una matrice bidimensionale contenente gli elementi che si desidera inserire nell'elenco.

3	Impostare la proprietà ColumnCount del controllo ListBox o ComboBox in modo che corrisponda al numero degli elementi dell'elenco.

4	Eseguire una delle seguenti operazioni:

•	Assegnare la matrice come valore alla proprietà List. Il contenuto del controllo ListBox corrisponderà esattamente al contenuto della matrice.

•	Assegnare la matrice come valore alla proprietà Column che inverte le righe e le colonne, in modo che ciascuna riga del controllo ListBox corrisponda a una colonna della matrice.


Visualizzare o nascondere la descrizione dei controlli

1	Scegliere Opzioni dal menu Strumenti.

2	Selezionare la scheda Generale.

3	Eseguire una delle seguenti operazioni:

•	Per visualizzare le descrizioni, selezionare la casella di controllo Mostra descrizione comandi.

•	Per nascondere le descrizioni dei comandi, deselezionare la casella di controllo Mostra descrizione comandi.


Modello ad oggetti di Microsoft Forms

Il modello ad oggetti di Microsoft Forms comprende i seguenti tipi di oggetto:

•	Controlli

•	Insiemi

•	Oggetti (all'interno degli insiemi)

Per ciascun elemento del modello ad oggetti di Microsoft Forms è disponibile una combinazione di proprietà, eventi e metodi utilizzabili per fare funzionare l'applicazione nel modo desiderato.

In Microsoft Forms sono disponibili tre insiemi:

L'insieme Controls contiene tutti i controlli di un form, di un oggetto Frame o di un oggetto Page.

L'insieme Pages contiene tutti gli oggetti Page di un controllo MultiPage. A ciascun controllo MultiPage corrisponde un insieme Pages distinto.

L'insieme Tabs contiene tutti gli oggetti Tab di un controllo TabStrip. A ciascun controllo TabStrip corrisponde un insieme Tabs distinto.


Creazione di un gruppo di opzioni

Per impostazione predefinita, tutti i controlli OptionButton in un contenitore (quali un form, un controllo MultiPage o un controllo Frame) fanno parte di un singolo gruppo di opzioni. Ciò significa che quando si seleziona uno dei pulsanti, tutti gli altri pulsanti di opzione del gruppo vengono automaticamente impostati su False.

Per disporre di più gruppi di opzioni sul form, è possibile creare gruppi aggiuntivi in due modi:

•	Utilizzare la proprietà GroupName per identificare i pulsanti correlati.

•	Raggruppare i pulsanti correlati in un controllo Frame nel form.

Il primo metodo è preferibile al secondo, in quanto richiede un numero di controlli ridotto per l'applicazione. Pertanto, l'applicazione occuperà minor spazio su disco e fornirà prestazioni migliori.

Nota   Un controllo TabStrip non è un contenitore. I pulsanti di opzione del controllo TabStrip sono compresi nel gruppo di opzioni del form. È possibile utilizzare GroupName per creare un gruppo di opzioni a partire da un insieme di pulsanti di un controllo TabStrip.


Creazione di un gruppo di opzioni con la proprietà GroupName

1	Posizionare tutti i controlli OptionButton necessari nel form. Si noti che in un controllo MultiPage o Frame i pulsanti di opzione verranno raggruppati automaticamente.

2	Identificare i pulsanti da inserire in ciascun gruppo che si desidera creare.

3	Immettere un valore per la proprietà Name di ciascun controllo.

4	Impostare la proprietà GroupName sullo stesso valore per tutti i pulsanti di uno stesso gruppo.


Corrispondenza tra gli elementi di un elenco

In Microsoft Forms sono disponibili tre metodi per stabilire una corrispondenza tra un valore immesso dall'utente e un elemento esistente nell'elenco di un controllo ListBox o ComboBox:

•	Nessuna corrispondenza—non ricerca la corrispondenza tra l'immissione e l'elemento dell'elenco.

•	Prima lettera—confronta l'ultima lettera digitata con la prima lettera di ciascun elemento dell'elenco. Viene selezionata la prima corrispondenza individuata nell'elenco.

•	Completa—confronta l'immissione con gli elementi dell'elenco, cercando una corrispondenza esatta.

La funzione di ricerca delle corrispondenze viene reimpostata dopo due secondi (sei secondi nella versione per l'Estremo Oriente). Se, ad esempio, si dispone dell'elenco delle province italiane e si digita rapidamente “MI”, verrà selezionato “Milano”. Se tuttavia la stessa sigla “MI” viene digitata lentamente, verrà selezionato “Imperia”, in quando la ricerca verrà reimpostata nell'intervallo tra la digitazione delle due lettere.

Se si sceglie la corrispondenza Completa, è consigliabile disporre gli elementi in ordine alfabetico (utilizzando ad esempio la proprietà TextColumn). Se l'elenco non è in ordine alfabetico, è possibile che la corrispondenza non funzioni correttamente. Se l'elenco include, ad esempio, i nomi delle città di Perugia, Sassari e Pescara in quest'ordine, se l'utente digita “pe”, la voce “Perugia” verrà considerata una corrispondenza completa. Il risultato è in effetti ambiguo, in quanto nell'elenco sono presenti due elementi che potrebbero corrispondere all'immissione. L'ambiguità viene eliminata se l'elenco viene ordinato in ordine alfabetico.


Utilizzo dell'ordine z per la sovrapposizione dei controlli

Per posizionare un controllo in primo piano o in ultima posizione nell'ordine z:

1.	Selezionare i controlli dei quali si desidera modificare la posizione.

2.	Scegliere Ordina dal menu Formato.

3.	Nel sottomenu scegliere Porta in primo piano o Porta in secondo piano.

Per posizionare un controllo in una posizione specifica nell'ordine z:

1.	Selezionare i controlli dei quali si desidera modificare la posizione.

2.	Scegliere Ordina dal menu Formato.

3.	Nel sottomenu scegliere Porta avanti o Porta indietro.

Nota   I comandi di posizionamento, quali Porta in secondo piano o Porta in primo piano, non possono essere annullati o ripetuti. Se ad esempio si seleziona un oggetto e quindi si sceglie Porta indietro dal menu di scelta rapida, non sarà possibile annullare o ripetere tale operazione.

I comandi di menu Porta in primo piano, Porta avanti, Porta in secondo piano e Porta indietro consentono di modificare l'ordine z di un controllo in relazione ad altri controlli. Gli eventuali controlli ListBox, Frame o MultiPage del form vengono automaticamente portati il più possibile in primo piano. Il comando Porta indietro, ad esempio, consente di spostare un controllo ListBox, Frame e MultiPage dietro agli altri controlli ListBox, Frame o MultiPage, ma non dietro ad altri tipi di controlli. In modo analogo, il comando Porta avanti consente di portare in avanti un controllo diverso da ListBox, Frame o MultiPage, ma non di spostarlo in primo piano rispetto a controlli ListBox, Frame o MultiPage.

A livello visivo ciò significa che, se un controllo ListBox, Frame o MultiPage e altri controlli di Microsoft Forms si trovano nella stessa posizione di un form, i controlli ListBox, Frame e MultiPage saranno sempre visualizzati in primo piano rispetto agli altri controlli. Se invece un controllo ListBox, Frame o MultiPage si trova nella stessa posizione di un altro controllo ListBox, Frame o MultiPage, il controllo visualizzato in primo piano rispetto agli altri dipenderà dall'ordine z.


Creazione di un controllo trasparente

1	Posizionare il controllo desiderato nel form.

2	Visualizzare le proprietà del controllo.

3	Impostare la proprietà BackStyle su Transparent.

4	Se il controllo supporta la proprietà BorderStyle, impostarla su None.

Nota   Quando un controllo viene reso trasparente, il colore di sfondo non viene visualizzato e la proprietà BackColor viene ignorata anche se la sua impostazione non viene in effetti modificata.


Eliminazione di una bitmap da un controllo

Nella finestra Proprietà:

1	Evidenziare il valore della proprietà Picture (la parola “bitmap”).

2	Premere CANC.

Nel codice:

•	Digitare la seguente istruzione: Object.Picture = LoadPicture(“”)


Assegnazione di una bitmap a un controllo

Nella finestra Proprietà:

1	Selezionare la proprietà Picture.

2	Nella finestra di dialogo visualizzata digitare il nome e la posizione dell'immagine.

Se le dimensioni dell'immagine sono superiori a quelle del controllo, Microsoft Forms riduce l'immagine per adattarla al controllo, indipendentemente dal fatto che l'immagine sia stata assegnata tramite la finestra Proprietà o tramite il codice. La proprietà PictureAlignment determina la modalità di allineamento dell'immagine nel controllo.


Allineamento di un'immagine in un controllo

La proprietà Picture consente di assegnare a un controllo una bitmap o un'altra immagine. Dopo averla assegnata al controllo, l'immagine può essere allineata nel controllo eseguendo una delle seguenti operazioni:

•	Utilizzare la proprietà PictureAlignment per centrare l'immagine all'interno del controllo Image o allineare un angolo dell'immagine rispetto all'angolo corrispondente di Image.

•	Utilizzare la proprietà PictureSizeMode per ritagliare, estendere, ingrandire o ridurre l'immagine all'interno del controllo Image. L'estensione può determinare la distorsione dell'immagine; l'ingrandimento o la riduzione non provoca alcuna distorsione.

•	Utilizzare la proprietà PictureTiling per visualizzare più copie dell'immagine all'interno di Image.


Impostazione delle dimensioni della griglia

1	Scegliere Opzioni dal menu Strumenti.

2	Nella finestra di dialogo Opzioni selezionare la scheda Generale.

3	Nel gruppo Impostazioni griglia form, specificare le dimensioni desiderate per i blocchi della griglia. Se si specificano numeri piccoli, si avranno blocchi piccoli.

Suggerimento   Se si utilizza il comando Disponi pulsanti per il posizionamento di pulsanti di comando nell'applicazione, è consigliare operare con valori di griglia ridotti, per poter posizionare i pulsanti più vicino al margine del form.


Creazione di un gruppo di controlli

1	Selezionare nel form i controlli che si desidera includere nel gruppo.

2	Scegliere Raggruppa dal menu Formato.


Ridimensionamento di tutti i controlli di un gruppo

1	Selezionare il gruppo.

Il gruppo selezionato verrà circondato da un rettangolo con quadratini di ridimensionamento.

2	Fare clic su uno dei quadratini e trascinare per modificare le dimensioni del rettangolo.

3	Rilasciare il pulsante del mouse.

Le dimensioni di ciascun controllo verranno modificate in misura proporzionale al ridimensionamento del rettangolo che racchiude il gruppo.


Annullamento di un raggruppamento di controlli

1	Selezionare il gruppo.

2	Scegliere Annulla raggruppamento dal menu Formato.


Visualizzazione del menu di scelta rapida di un gruppo

1	Selezionare il gruppo.

2	Fare clic con il pulsante destro in un punto qualsiasi del rettangolo che racchiude il gruppo.

Suggerimento   Se non si desidera utilizzare alcun comando e si desidera chiudere il menu, fare clic in un punto qualsiasi del gruppo all'esterno del menu di scelta rapida.


Selezione di un controllo all'interno di un gruppo

1	Selezionare il gruppo.

2	Selezionare un singolo controllo all'interno del gruppo. I quadratini di ridimensionamento attorno al gruppo diventeranno più chiari e attorno al controllo selezionato verranno visualizzati quadratini scuri.

È possibile modificare il valore delle proprietà del controllo selezionato. Qualsiasi modifica apportata riguarderà esclusivamente il controllo selezionato.

3	Dopo aver modificato il controllo selezionato, fare clic in qualsiasi punto del gruppo all'esterno del controllo selezionato. Il gruppo rimarrà selezionato.

È possibile selezionare un altro controllo del gruppo o eseguire altre operazioni.


Visualizzazione del menu di scelta rapida per MultiPage o Page

1	Assicurarsi che il form non sia in esecuzione.

2	Eseguire una delle seguenti operazioni:

•	Per visualizzare il menu di scelta rapida di un singolo oggetto Page, fare clic con il pulsante destro sulla didascalia della pagina desiderata.

•	Per visualizzare il menu di scelta rapida dell'intero controllo MultiPage, fare clic con il pulsante destro in qualsiasi punto del controllo, ma non sulla didascalia di un oggetto Page del controllo.


Visualizzazione del menu di scelta rapida per TabStrip o Tab

1	Assicurarsi che il form non sia in esecuzione.

2	Eseguire una delle seguenti operazioni:

•	Per visualizzare il menu di scelta rapida di un singolo oggetto Tab, selezionare la linguetta della scheda desiderata.

Quando la scheda è selezionata, la didascalia relativa viene racchiusa in un rettangolo tratteggiato.

Fare clic con il pulsante destro del mouse sulla didascalia selezionata.

•	Per visualizzare il menu di scelta rapida dell'intero controllo TabStrip, fare clic con il pulsante destro in qualsiasi punto del controllo, ma non sulla didascalia di un oggetto Tab del controllo.


Controlli attivi e controlli selezionati

Tutti i controlli possono essere attivi e selezionati. Quando un controllo è attivo, significa che si stanno eseguendo operazioni sul contenuto del controllo. Quando invece è selezionato, significa che si stanno eseguendo operazioni sul controllo stesso.

La maggior parte dei controlli vengono selezionati automaticamente quando si inseriscono nel form. In modalità di progettazione, attorno ai bordi dei controlli selezionati vengono visualizzati quadratini di ridimensionamento. Dopo aver deselezionato un controllo, è possibile selezionarlo nuovamente facendo clic sul controllo.

Facendo clic su un controllo selezionato, il controllo diventa attivo ed è possibile modificarne direttamente la didascalia.

In entrambe le situazioni, ovvero sia che i controlli siano attivi che selezionati, è possibile utilizzare CANC, CTRL+X e CTRL+C come tasti di scelta rapida per i comandi Cancella, Taglia e Copia. Se il controllo è selezionato, questi comandi sono disponibili nel menu di scelta rapida e vengono applicati al controllo stesso. Se il controllo è attivo, vengono invece applicati al testo selezionato all'interno del controllo. Se non è selezionato alcun testo, i comandi non avranno alcun effetto. Questi comandi non sono disponibili nel menu di scelta rapida di controlli attivi.


Suggerimenti sulla selezione di più controlli

Per selezionare più controlli, è possibile procedere in tre modi diversi:

•	Fare clic tenendo premuto MAIUSC: viene visualizzato un rettangolo di selezione invisibile attorno ai controlli selezionati, sui quali appaiono i quadratini di ridimensionamento.

•	Fare clic tenendo premuto CTRL: i quadratini di ridimensionamento vengono visualizzati solo sui controlli che sono stati selezionati, non su quelli inclusi nel rettangolo di selezione. Con questo metodo è possibile che vengano selezionati controlli aggiuntivi situati accanto a quelli selezionati. In questo caso, è necessario utilizzare il puntatore Seleziona oggetti descritto di seguito.

•	Utilizzare il puntatore Seleziona oggetti della casella degli strumenti: disegnare un rettangolo sovrapponendolo ai controlli che si desidera selezionare. Tutti i controlli che vengono inclusi o che toccano il rettangolo, verranno selezionati.

Quando si selezionano più controlli contemporaneamente, uno di tali controlli viene considerato un riferimento per il resto dei controlli selezionati e viene definito controllo dominante.


Suggerimenti sull'impostazione del controllo dominante

Quando vengono selezionati più controlli, è possibile impostare il controllo dominante in uno dei modi indicati di seguito:

•	MAIUSC+CLIC: il controllo dominante è il primo controllo selezionato con MAIUSC+CLIC.

•	CTRL+CLIC: il controllo dominante è l'ultimo controllo selezionato con CTRL+CLIC.

•	Puntatore Seleziona oggetti sulla casella degli strumenti: il controllo dominante è quello più vicino al puntatore del mouse quando si inizia a disegnare il rettangolo che racchiude i controlli da selezionare.

Se si tiene premuto CTRL mentre si fa doppio clic su uno dei controlli selezionati, tale controllo diventa il controllo dominante.


Annullamento e ripetizione in Microsoft Forms

Microsoft Forms supporta più livelli di annullamento e ripetizione, ovvero è possibile annullare una serie di azioni, non una sola azione.

Il tasto di scelta rapida per il comando Annulla è CTRL+Z, quello per il comando Ripeti è CTRL+Y.

Non è possibile annullare e ripetere i comandi per operazioni di sovrapposizione, quali Porta in secondo piano, Porta in primo piano o Porta indietro.


Riferimenti per valore in Microsoft Forms

In Microsoft Forms la parola chiave ByVal indica che un argomento viene passato per valore, in modo analogo a Visual Basic. A differenza di Visual Basic, tuttavia, in Microsoft Forms è possibile utilizzare ByVal con oggetti ReturnBoolean, ReturnEffect, ReturnInteger e ReturnString. In questo caso, il valore passato non è semplicemente un tipo di dati, ma un puntatore all'oggetto.

Quando si utilizzano questi oggetti, la parola chiave ByVal fa riferimento all'oggetto, non al metodo di passaggio dei parametri. Per ciascuno degli oggetti sopraindicati è disponibile una proprietà Value. È inoltre possibile passare un valore sia a una funzione che da una funzione. Dato che si possono modificare i valori dei membri dell'oggetto, il risultato ottenuto con l'esecuzione degli eventi è coerente con il funzionamento della parola chiave ByRef, anche se nella sintassi è stata specificata la parola chiave ByVal.

L'assegnazione di un valore associato a un oggetto ReturnBoolean, ReturnEffect, ReturnInteger o ReturnString è simile all'impostazione del valore di qualsiasi altro argomento. Se, ad esempio, la sintassi di un evento indica che l'argomento Cancel viene utilizzato con l'oggetto ReturnBoolean, l'istruzione Cancel=True è valida come lo è per gli altri tipi di dati.


Finestra di dialogo Rinomina

Contiene le impostazioni delle proprietà Accelerator, Caption e ControlTipText per la scheda o la pagina in cui si trova lo stato attivo. Contiene inoltre le impostazioni delle proprietà Caption e ToolTipText della pagina attiva della casella degli strumenti. È possibile aggiornare il valore delle proprietà.

Il tasto di scelta rapida è un tasto che l'utente preme contemporaneamente ad ALT per spostare lo stato attivo su un oggetto Page o Tab. La didascalia è il testo che identifica un oggetto Page o Tab o la pagina corrente della casella degli strumenti. ControlTipText è una breve descrizione di un controllo, che viene visualizzata quando l'utente posiziona il puntatore del mouse sopra un controllo senza fare clic. ToolTipText è una breve descrizione di un controllo che appare quando l'utente posiziona il puntatore del mouse sopra la pagina attiva della casella degli strumenti senza fare clic.

Per impostare un tasto di scelta rapida per Page o Tab:

•	Digitare un singolo carattere nella casella Tasto di scelta rapida.

Per rinominare l'oggetto Page o Tab:

•	Digitare un nuovo valore nella casella Didascalia.

Per definire la descrizione del controllo per un oggetto Page o Tab:

•	Digitare un nuovo valore nella casella Descrizione controllo.

Per definire la descrizione della pagina attiva della casella degli strumenti:

•	Digitare un nuovo valore nella casella Descrizione controllo.

Nota   Scegliere OK per confermare i nuovi valori impostati per l'oggetto Page o Tab o la pagina della casella degli strumenti.


Finestra di dialogo Ordine delle pagine/Ordine di tabulazione

Per modificare la posizione di una pagina o di una scheda:

1.	Selezionare il nome dell'oggetto Page o Tab da spostare.

2.	Scegliere Sposta in alto o Sposta in basso fino a quando l'elemento selezionato non si trova nella posizione desiderata.

3.	Quando tutti gli elementi sono nell'ordine desiderato, scegliere OK.


Finestra di dialogo Controlli aggiuntivi

1.	Nell'elenco Controlli disponibili, selezionare i controlli che si desidera aggiungere nella casella degli strumenti.

2.	Scegliere OK.

Suggerimento   È possibile applicare un filtro all'elenco Controlli disponibili selezionando le opzioni desiderate nel gruppo Mostra.


Finestra di dialogo Personalizza controllo

Contiene la proprietà ControlTipText e l'icona che rappresenta il controllo nella casella degli strumenti. Consente di definire o personalizzare il valore ControlTipText associato al controllo e l'icona visualizzata nella casella degli strumenti.

Per definire o modificare ControlTipText:

•	Immettere un nuovo valore nella casella Descrizione controllo.

Per modificare l'icona:

1.	Scegliere il pulsante Modifica immagine.

2.	Utilizzare l'editor di immagini per modificare l'icona nel modo desiderato.

Per caricare un'altra icona:

1.	Scegliere il pulsante Carica immagine.

2.	Nella finestra di dialogo visualizzata, selezionare un file immagine.

3.	Scegliere OK per confermare le impostazioni.


Esempio del metodo Item

In questo esempio il metodo Item viene utilizzato per accedere ai singoli membri degli insiemi Controls e Pages. L'utente sceglie il pulsante di opzione dell'insieme Controls o del controllo MultiPage e quindi fa clic sul controllo CommandButton. Il nome del controllo selezionato viene restituito in un controllo Label.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CommandButton (CommandButton1).

•	Un controllo Label (Label1).

•	Due controlli OptionButton (OptionButton1 e OptionButton2).

•	Un controllo MultiPage (MultiPage1).

Dim MyControl As Object

Dim ControlsIndex As Integer

Private Sub CommandButton1_Click()

    If OptionButton1.Value = True Then

        'Elabora l'insieme Controls per UserForm

        Set MyControl = Controls.Item(ControlsIndex)

        Label1.Caption = MyControl.Name

        'Prepara l'indice per il controllo successivo di UserForm

        ControlsIndex = ControlsIndex + 1

        If ControlsIndex >= Controls.Count Then

            ControlsIndex = 0

        End If

    ElseIf OptionButton2.Value = True Then

        'Elabora l'oggetto Page corrente dell'insieme Pages

        Set MyControl = MultiPage1.Pages.Item(MultiPage1.Value)

        Label1.Caption = MyControl.Name

    End If

End Sub

Private Sub UserForm_Initialize()

    ControlsIndex = 0

    'TabsIndex = 0

    OptionButton1.Caption = "Insieme Controls"

    OptionButton2.Caption = "Insieme Pages"

    OptionButton1.Value = True

    CommandButton1.Caption = "Leggi il nome del membro"

End Sub


Esempio della proprietà Object

Per un nuovo controllo potrebbe essere disponibile una proprietà Top diversa dalla proprietà Top standard di Microsoft Forms. È possibile utilizzare una o l'altra proprietà in base alla seguente sintassi:

•	controllo.Top per utilizzare la proprietà Top standard.

•	controllo.Object.Top per utilizzare la proprietà Top del controllo aggiunto.


Esempio della proprietà TabStop

In questo esempio la proprietà TabStop viene utilizzata per rendere o meno possibile lo spostamento dello stato attivo su un controllo specifico premendo TAB. È possibile premere TAB per spostare lo stato attivo tra i vari controlli del form e quindi fare clic sul controllo ToggleButton per modificare l'impostazione della proprietà TabStop di CommandButton1. Quando TabStop è impostata su False, non è possibile spostare lo stato attivo su CommandButton1 tramite TAB.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CommandButton (CommandButton1).

•	Un controllo ToggleButton (ToggleButton1).

•	Uno o più controlli diversi dai precedenti, ad esempio OptionButton o ListBox.

Private Sub CommandButton1_Click()

    MsgBox "Si è fatto clic su CommandButton1."

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1 = True Then

        CommandButton1.TabStop = True

        ToggleButton1.Caption = "TabStop attivata"

    Else

        CommandButton1.TabStop = False

        ToggleButton1.Caption = "TabStop disattivata"

    End If

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Mostra il messaggio"

    ToggleButton1.Caption = "TabStop attiva"

    ToggleButton1.Value = True

    ToggleButton1.Width = 90

End Sub


Esempio della proprietà TakeFocusOnClick

In questo esempio la proprietà TakeFocusOnClick viene utilizzata per specificare se un controllo CommandButton è in grado di ricevere o meno lo stato attivo quando si fa clic su di esso. Per verificare l'esempio, prima di fare clic su CommandButton1 fare clic su un altro controllo. Se la proprietà TakeFocusOnClick è impostata su True, CommandButton1 riceverà lo stato attivo quando si fa clic su di esso. È possibile modificare il valore di TakeFocusOnClick facendo clic sul controllo ToggleButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CommandButton (CommandButton1).

•	Un controllo ToggleButton (ToggleButton1).

•	Uno o più controlli diversi dai precedenti, ad esempio OptionButton o ListBox.

Private Sub CommandButton1_Click()

    MsgBox "Osservare se CommandButton1 riceve lo stato attivo."

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1 = True Then

        CommandButton1.TakeFocusOnClick = True

        ToggleButton1.Caption = "TakeFocusOnClick attivata"

    Else

        CommandButton1.TakeFocusOnClick = False

        ToggleButton1.Caption = "TakeFocusOnClick disattivata"

    End If

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Mostra il messaggio"

    ToggleButton1.Caption = "TakeFocusOnClick attivata"

    ToggleButton1.Value = True

    ToggleButton1.Width = 90

End Sub


Esempio della proprietà MatchEntry

In questo esempio la proprietà MatchEntry viene utilizzata per illustrare le funzioni di corrispondenza tra caratteri disponibili per i controlli ComboBox e ListBox. È possibile impostare il tipo di corrispondenza utilizzando alcuni controlli OptionButton e quindi digitare del testo nel controllo ComboBox per specificare un elemento incluso nel relativo elenco.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Tre controlli OptionButton (da OptionButton1 a OptionButton3).

•	Un controllo ComboBox (ComboBox1).

Private Sub OptionButton1_Click()

    ComboBox1.MatchEntry = fmMatchEntryNone

End Sub

Private Sub OptionButton2_Click()

    ComboBox1.MatchEntry = fmMatchEntryFirstLetter

End Sub

Private Sub OptionButton3_Click()

    ComboBox1.MatchEntry = fmMatchEntryComplete

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 9

        ComboBox1.AddItem "Choice " & i

    Next i

    ComboBox1.AddItem "Chocoholic"

    OptionButton1.Caption = "Nessuna corrispondenza"

    OptionButton1.Value = True

    OptionButton2.Caption = "Corrispondenza di base"

    OptionButton3.Caption = "Corrispondenza estesa"

End Sub


Esempio delle proprietà MatchFound e MatchRequired

In questo esempio le proprietà MatchFound e MatchRequired vengono utilizzate per illustrare le funzioni aggiuntive di corrispondenza tra caratteri per il controllo ComboBox. Il codice di verifica della corrispondenza è stato inserito nella routine dell'evento Change.

È necessario specificare se il testo contenuto nell'area di immissione del testo del controllo ComboBox deve corrispondere a uno degli elementi inclusi nell'elenco del controllo. È inoltre possibile specificare se la corrispondenza deve necessariamente verificarsi utilizzando un controllo CheckBox e quindi digitare del testo nel controllo ComboBox per specificare un elemento incluso nel relativo elenco.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ComboBox (ComboBox1).

•	Un controllo CheckBox (CheckBox1).

Private Sub CheckBox1_Click()

    If CheckBox1.Value = True Then

        ComboBox1.MatchRequired = True

        MsgBox "Per spostare lo stato attivo dal controllo ComboBox, digitare una voce che corrisponda a una voce dell'elenco oppure premere ESC."

    Else

        ComboBox1.MatchRequired = False

        MsgBox "Per spostare lo stato attivo dal controllo ComboBox, fare clic su un altro controllo o spostarsi con TAB su di esso. La corrispondenza è facoltativa."

    End If

End Sub

Private Sub ComboBox1_Change()

    If ComboBox1.MatchRequired = True Then

    'MSForms gestisce questi casi in modo automatico

    Else

        If ComboBox1.MatchFound = True Then

            MsgBox "Corrispondenza trovata. Corrispondenza facoltativa."

        Else

            MsgBox "Corrispondenza non trovata. Corrispondenza facoltativa."

        End If

    End If

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 9

        ComboBox1.AddItem "Choice " & i

    Next i

    ComboBox1.AddItem "Chocoholic"

    CheckBox1.Caption = "Corrispondenza obbligatoria"

    CheckBox1.Value = True

End Sub


Esempio delle proprietà MultiSelect e Selected

In questo esempio le proprietà MultiSelect e Selected vengono utilizzate per illustrare come selezionare uno o più elementi in un controllo ListBox. È possibile specificare una modalità di selezione tramite un pulsante di opzione e quindi selezionare uno o più elementi nel controllo ListBox. Sarà quindi possibile visualizzare gli elementi selezionati in un altro controllo ListBox facendo clic sul controllo CommandButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli ListBox (ListBox1 e ListBox2).

•	Un controllo CommandButton (CommandButton1).

•	Tre controlli OptionButton (da OptionButton1 a OptionButton3).

Dim i As Integer

Private Sub CommandButton1_Click()

    ListBox2.Clear

    For i = 0 To 9

        If ListBox1.Selected(i) = True Then

            ListBox2.AddItem ListBox1.List(i)

        End If

    Next i

End Sub

Private Sub OptionButton1_Click()

    ListBox1.MultiSelect = fmMultiSelectSingle

End Sub

Private Sub OptionButton2_Click()

    ListBox1.MultiSelect = fmMultiSelectMulti

End Sub

Private Sub OptionButton3_Click()

    ListBox1.MultiSelect = fmMultiSelectExtended

End Sub

Private Sub UserForm_Initialize()

    For i = 0 To 9

        ListBox1.AddItem "È stato scelto " & (ListBox1.ListCount + 1)

    Next i

    OptionButton1.Caption = "Selezione singola"

    ListBox1.MultiSelect = fmMultiSelectSingle

    OptionButton1.Value = True

    OptionButton2.Caption = "Selezione multipla"

    OptionButton3.Caption = "Selezione estesa"

    CommandButton1.Caption = "Mostra le selezioni"

    CommandButton1.AutoSize = True

End Sub


Esempio della proprietà Style per il controllo ComboBox

In questo esempio la proprietà Style viene utilizzata per modificare l'effetto prodotto dalle operazioni di digitazione nell'area di immissione del testo di un controllo ComboBox. È possibile scegliere uno stile selezionando un controllo OptionButton e quindi digitare del testo nel controllo ComboBox per selezionare un elemento. Quando la proprietà Style è impostata su fmStyleDropDownList, è necessario selezionare un elemento nell'elenco a discesa. Quando Style è impostata su fmStyleDropDownCombo, è possibile digitare del testo nell'area di immissione per specificare un elemento incluso nell'elenco a discesa.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli OptionButton (OptionButton1 e OptionButton2).

•	Un controllo ComboBox (ComboBox1).

Private Sub OptionButton1_Click()

    ComboBox1.Style = fmStyleDropDownCombo

End Sub

Private Sub OptionButton2_Click()

    ComboBox1.Style = fmStyleDropDownList

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 10

        ComboBox1.AddItem "È stato scelto " & i

    Next i

    OptionButton1.Caption = "Funziona come ComboBox"

    OptionButton1.Value = True

    ComboBox1.Style = fmStyleDropDownCombo

    OptionButton2.Caption = "Funziona come ListBox"

End Sub


Esempio della proprietà Style per i controlli MultiPage e TabStrip

In questo esempio la proprietà Style viene utilizzata per specificare l'aspetto delle schede nei controlli MultiPage e TabStrip. Viene inoltre illustrato l'utilizzo di un controllo Label. È possibile scegliere uno stile selezionando un controllo OptionButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1).

•	Tre controlli OptionButton (da OptionButton1 a OptionButton3).

•	Un controllo MultiPage (MultiPage1).

•	Un controllo TabStrip (TabStrip1).

•	Un qualsiasi controllo in TabStrip.

•	Un qualsiasi controllo in ogni pagina di MultiPage.

Private Sub OptionButton1_Click()

    MultiPage1.Style = fmTabStyleTabs

    TabStrip1.Style = fmTabStyleTabs

End Sub

Private Sub OptionButton2_Click()

    'Si noti che i bordi delle pagine non sono visibili

    MultiPage1.Style = fmTabStyleButtons

    TabStrip1.Style = fmTabStyleButtons

End Sub

Private Sub OptionButton3_Click()

    'Si noti che i bordi delle pagine non sono visibili

    'e che il corpo della pagina inizia dove

    'normalmente vengono visualizzate le schede.

    MultiPage1.Style = fmTabStyleNone

    TabStrip1.Style = fmTabStyleNone

End Sub

Private Sub UserForm_Initialize()

    Label1.Caption = "Stile delle pagine/schede"

    OptionButton1.Caption = "Schede"

    OptionButton1.Value = True

    MultiPage1.Style = fmTabStyleTabs

    TabStrip1.Style = fmTabStyleTabs

    OptionButton2.Caption = "Pulsanti"

    OptionButton3.Caption = "Né schede né pulsanti"

End Sub


Esempio delle proprietà OldLeft, OldTop, OldHeight e OldWidth

In questo esempio le proprietà OldLeft, OldTop, OldHeight e OldWidth vengono utilizzate nel codice della routine dell'evento Layout per fare in modo che un controllo conservi le relative dimensioni e la posizione correnti. È possibile fare clic sul controllo CommandButton con didascalia Sposta ComboBox per spostare il controllo. Sarà quindi necessario rispondere al messaggio visualizzato. È inoltre possibile fare clic sul controllo CommandButton con didascalia Reimposta ComboBox per reimpostare il controllo in modo che sia possibile ripetere l'operazione.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli CommandButton (CommandButton1 and CommandButton2).

•	Un controllo ComboBox (ComboBox1).

Dim Initialize As Integer

Dim ComboLeft, ComboTop, ComboWidth, ComboHeight As Integer

Private Sub UserForm_Initialize()

    Initialize = 0

    CommandButton1.Caption = "Sposta ComboBox"

    CommandButton2.Caption = "Reimposta ComboBox"

    'Informazioni per la reimpostazione del controllo

    'ComboBox

    ComboLeft = ComboBox1.Left

    ComboTop = ComboBox1.Top

    ComboWidth = ComboBox1.Width

    ComboHeight = ComboBox1.Height

End Sub

Private Sub CommandButton1_Click()

        ComboBox1.Move 0, 0, , , True

End Sub

Private Sub UserForm_Layout()

    Dim MyControl As Control

    Dim MsgBoxResult As Integer

    If Initialize = 0 Then   'Non visualizza la

                             'finestra di messaggio per

                             'l'evento Layout iniziale.

        Initialize = 1

        Exit Sub

    End If

    MsgBoxResult = MsgBox("È attiva la routine dell'evento Layout. Continuare lo spostamento?", vbYesNo)

    If MsgBoxResult = vbNo Then

        ComboBox1.Move ComboBox1.OldLeft, ComboBox1.OldTop, ComboBox1.OldWidth, ComboBox1.OldHeight

    End If

End Sub

Private Sub CommandButton2_Click()

    ComboBox1.Move ComboLeft, ComboTop, ComboWidth, ComboHeight

    'OldLeft, OldTop, OldWidth e OldHeight non vengono

    'riconosciute in questa fase.

    'Se la seguente istruzione non viene inserita in un

    'commento, genera un errore in fase di esecuzione.

    'ComboBox1.Move ComboBox1.OldLeft, ComboBox1.OldTop, ComboBox1.OldWidth, ComboBox1.OldHeight

End Sub


Esempio delle proprietà TabFixedHeight e TabFixedWidth

In questo esempio le proprietà TabFixedHeight e TabFixedWidth vengono utilizzate per impostare le dimensioni delle schede utilizzate nei controlli MultiPage e TabStrip. È possibile fare clic sui controlli SpinButton per regolare la larghezza e l'altezza delle schede all'interno dei controlli MultiPage e TabStrip.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo MultiPage (MultiPage1).

•	Un controllo TabStrip (TabStrip1).

•	Un controllo Label (Label1) per la regolazione della larghezza.

•	Un controllo SpinButton (SpinButton1) per la regolazione della larghezza.

•	Un controllo TextBox (TextBox1) per la regolazione della larghezza.

•	Un controllo Label (Label2) per la regolazione dell'altezza.

•	Un controllo SpinButton (SpinButton2) per la regolazione dell'altezza.

•	Un controllo TextBox (TextBox2) per la regolazione dell'altezza.

Private Sub UpdateTabWidth()

    TextBox1.Text = SpinButton1.Value

    TabStrip1.TabFixedWidth = SpinButton1.Value

    MultiPage1.TabFixedWidth = SpinButton1.Value

End Sub

Private Sub UpdateTabHeight()

    TextBox2.Text = SpinButton2.Value

    TabStrip1.TabFixedHeight = SpinButton2.Value

    MultiPage1.TabFixedHeight = SpinButton2.Value

End Sub

Private Sub UserForm_Initialize()

    MultiPage1.Style = fmTabStyleButtons

    Label1.Caption = "Larghezza schede"

    SpinButton1.Min = 0

    SpinButton1.Max = TabStrip1.Width / TabStrip1.Tabs.Count

    SpinButton1.Value = 0

    TextBox1.Locked = True

    UpdateTabWidth

    Label2.Caption = "Altezza schede"

    SpinButton2.Min = 0

    SpinButton2.Max = TabStrip1.Height

    SpinButton2.Value = 0

    TextBox2.Locked = True

    UpdateTabHeight

End Sub

Private Sub SpinButton1_SpinDown()

    UpdateTabWidth

End Sub

Private Sub SpinButton1_SpinUp()

    UpdateTabWidth

End Sub

Private Sub SpinButton2_SpinDown()

    UpdateTabHeight

End Sub

Private Sub SpinButton2_SpinUp()

    UpdateTabHeight

End Sub


Esempio della proprietà TabIndex

In questo esempio la proprietà TabIndex viene utilizzata per visualizzare e impostare l'ordine di tabulazione dei singoli controlli. È possibile premere TAB per passare al controllo successivo nell'ordine di tabulazione e per visualizzare il valore della proprietà TabIndex di tale controllo. È inoltre possibile fare clic su un controllo per visualizzare il relativo valore della proprietà TabIndex. L'impostazione della proprietà TabIndex di un controllo può essere modificata specificando un nuovo valore di indice nel controllo TextBox e facendo clic su CommandButton3. Quando viene modificata la proprietà TabIndex di un controllo, vengono aggiornati di conseguenza gli indici di tabulazione degli altri controlli inclusi nel controllo Frame.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1).

•	Un controllo TextBox (TextBox1).

•	Un controllo Frame (Frame1).

•	Un controllo TextBox (TextBox2) nel controllo Frame.

•	Due controlli CommandButton (CommandButton1 e CommandButton2) nel controllo Frame.

•	Un controllo ScrollBar (ScrollBar1) nel controllo Frame.

•	Un controllo CommandButton (CommandButton3) non nel controllo Frame.

Private Sub MoveToFront()

    Dim i, Temp As Integer

    Temp = Frame1.ActiveControl.TabIndex

    For i = 0 To Temp - 1

        Frame1.Controls.Item(i).TabIndex = i + 1

    Next i

    Frame1.ActiveControl.TabIndex = 0

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub CommandButton3_Click()

    Dim i, Temp As Integer

    If IsNumeric(TextBox1.Text) Then

        Temp = Val(TextBox1.Text)

        If Temp >= Frame1.Controls.Count Or Temp < 0 Then

            'Valore non compreso nell'intervallo.

            'Sposta il controllo all'inizio

            'dell'ordine di tabulazione

            MoveToFront

        ElseIf Temp > Frame1.ActiveControl.TabIndex Then

            'Sposta la voce immessa in basso

            'nell'elenco

            For i = Frame1.ActiveControl.TabIndex + 1 To Temp

                Frame1.Controls.Item(i).TabIndex = i - 1

            Next i

            Frame1.ActiveControl.TabIndex = Temp

            TextBox1.Text = Frame1.ActiveControl.TabIndex

        Else

            'Sposta la voce immessa in alto

            'nell'elenco

            For i = Frame1.ActiveControl.TabIndex - 1 To Temp

                Frame1.Controls.Item(i).TabIndex = i + 1

            Next i

            Frame1.ActiveControl.TabIndex = Temp

            TextBox1.Text = Frame1.ActiveControl.TabIndex

        End If

    Else

        'La voce immessa contiene testo. Sposta il

        'controllo all'inizio dell'ordine di tabulazione

        MoveToFront

    End If

End Sub

Private Sub UserForm_Initialize()

    Label1.Caption = "TabIndex"

    Frame1.Controls(0).SetFocus

    TextBox1.Text = Frame1.ActiveControl.TabIndex

    Frame1.Cycle = fmCycleCurrentForm

    CommandButton3.Caption = "Imposta TabIndex"

    CommandButton3.TakeFocusOnClick = False

End Sub

Private Sub TextBox2_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub CommandButton1_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub CommandButton2_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub

Private Sub ScrollBar1_Enter()

    TextBox1.Text = Frame1.ActiveControl.TabIndex

End Sub


Esempio delle proprietà Layout Event e LayoutEffect

In questo esempio il metodo Move viene utilizzato per spostare un controllo selezionato in un form. Vengono inoltre utilizzati l'evento Layout e la proprietà LayoutEffect per identificare il controllo spostato, ovvero il controllo che ha modificato il layout di UserForm. È possibile fare clic su un controllo da spostare e quindi sul controllo CommandButton. Verrà visualizzata una finestra di messaggio con il nome del controllo che viene spostato.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Un controllo ComboBox (ComboBox1).

•	Un controllo OptionButton (OptionButton1).

•	Un controllo CommandButton (CommandButton1).

•	Un controllo ToggleButton (ToggleButton1).

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Sposta controllo attivo"

    CommandButton1.AutoSize = True

    CommandButton1.TakeFocusOnClick = False

    ToggleButton1.Caption = "Usa evento Layout"

    ToggleButton1.Value = True

End Sub

Private Sub CommandButton1_Click()

    If ActiveControl.Name = "ToggleButton1" Then

        'Non viene spostato

    Else

        'Sposta il controllo tramite l'evento Layout

        'quando ToggleButton1.Value è True

        ActiveControl.Move 0, 0, , , ToggleButton1.Value

    End If

End Sub

Private Sub UserForm_Layout()

    Dim MyControl As Control

    MsgBox "È attivo l'evento Layout"

    'Individua il controllo che viene spostato.

    For Each MyControl In Controls

        If MyControl.LayoutEffect = fmLayoutEffectInitiate Then

            MsgBox MyControl.Name & " viene spostato."

            Exit For

        End If

    Next

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "Usa evento Layout"

    Else

        ToggleButton1.Caption = "Non usare evento Layout"

    End If

End Sub


Esempio della proprietà Tag

In questo esempio la proprietà Tag viene utilizzata per memorizzare informazioni aggiuntive su ciascun controllo di UserForm. È possibile fare clic su un controllo e quindi sul controllo CommandButton. Il contenuto della proprietà Tag per il controllo selezionato viene inserito in un controllo TextBox.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Un controllo CommandButton (CommandButton1).

•	Un controllo ScrollBar (ScrollBar1).

•	Un controllo ComboBox (ComboBox1).

•	Un controllo MultiPage (MultiPage1).

Private Sub CommandButton1_Click()

    TextBox1.Text = ActiveControl.Tag

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Locked = True

    TextBox1.Tag = "Area di visualizzazione per le proprietà Tag."

    TextBox1.AutoSize = True

    CommandButton1.Caption = "Mostra il contenuto di Tag per il controllo corrente."

    CommandButton1.AutoSize = True

    CommandButton1.WordWrap = True

    CommandButton1.TakeFocusOnClick = False

    CommandButton1.Tag = "Mostra il contenuto di Tag del controllo su cui si trova lo stato attivo."

    ComboBox1.Style = fmStyleDropDownList

    ComboBox1.Tag = "Lo stile del controllo ComboBox è uguale a quello di un controllo ListBox."

    ScrollBar1.Max = 100

    ScrollBar1.Min = -273

    ScrollBar1.Tag = "Max = " & ScrollBar1.Max & " , Min = " & ScrollBar1.Min

    MultiPage1.Pages.Add

    MultiPage1.Pages.Add

    MultiPage1.Tag = "Questo controllo MultiPage è costituito da " & MultiPage1.Pages.Count & " pagine."

End Sub


Esempio della proprietà TopIndex

In questo esempio la proprietà TopIndex viene utilizzata per identificare il primo elemento visualizzato in un controllo ListBox, mentre la proprietà ListIndex viene utilizzata per identificare l'elemento di un controllo ListBox in cui si trova lo stato attivo. I valori delle proprietà TopIndex e ListIndex visualizzati vengono aggiornati quando si seleziona un elemento o quando si fa clic sul controllo CommandButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1).

•	Un controllo TextBox (TextBox1).

•	Un controllo Label (Label2).

•	Un controllo TextBox (TextBox2).

•	Un controllo CommandButton (CommandButton1).

•	Un controllo ListBox (ListBox1).

Private Sub CommandButton1_Click()

    ListBox1.TopIndex = ListBox1.ListIndex

    TextBox1.Text = ListBox1.TopIndex

    TextBox2.Text = ListBox1.ListIndex

End Sub

Private Sub ListBox1_Change()

    TextBox1.Text = ListBox1.TopIndex

    TextBox2.Text = ListBox1.ListIndex

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 0 To 24

        ListBox1.AddItem "È stato scelto " & (i + 1)

    Next i

    ListBox1.Height = 66

    CommandButton1.Caption = "Sposta a inizio elenco"

    CommandButton1.AutoSize = True

    CommandButton1.TakeFocusOnClick = False

    Label1.Caption = "Indice elemento iniziale"

    TextBox1.Text = ListBox1.TopIndex

    Label2. Caption = "Indice elemento corrente"

    Label2.AutoSize = True

    Label2.WordWrap = False

    TextBox2.Text = ListBox1.ListIndex

End Sub


Esempio della proprietà TripleState

In questo esempio la proprietà TripleState viene utilizzata per impostare Null come valore valido per i controlli CheckBox e ToggleButton. È possibile controllare il valore della proprietà TripleState tramite ToggleButton2. È inoltre possibile impostare il valore di un controllo CheckBox o ToggleButton in base al valore di TripleState.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CheckBox (CheckBox1).

•	Un controllo ToggleButton (ToggleButton1).

•	Un controllo ToggleButton (ToggleButton2).

Private Sub UserForm_Initialize()

    CheckBox1.Caption = "Value è Vero"

    CheckBox1.Value = True

    CheckBox1.TripleState = False

    ToggleButton1.Caption = "Value è Vero"

    ToggleButton1.Value = True

    ToggleButton1.TripleState = False

    ToggleButton2.Value = False

    ToggleButton2.Caption = "TripleState disattivata"

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        ToggleButton2.Caption = "TripleState attivata"

        CheckBox1.TripleState = True

        ToggleButton1.TripleState = True

    Else

        ToggleButton2.Caption = "TripleState disattivata"

        CheckBox1.TripleState = False

        ToggleButton1.TripleState = False

    End If

End Sub

Private Sub CheckBox1_Change()

    If IsNull(CheckBox1.Value) Then

        CheckBox1.Caption = "Value è Null"

    ElseIf CheckBox1.Value = False Then

        CheckBox1.Caption = "Value è Falso"

    ElseIf CheckBox1.Value = True Then

        CheckBox1.Caption = "Value è Vero"

    End If

End Sub

Private Sub ToggleButton1_Change()

    If IsNull(ToggleButton1.Value) Then

        ToggleButton1.Caption = "Value è Null"

    ElseIf ToggleButton1.Value = False Then

        ToggleButton1.Caption = "Value è Falso"

    ElseIf ToggleButton1.Value = True Then

        ToggleButton1.Caption = "Value è Vero"

    End If

End Sub


Esempio della proprietà Value

In questo esempio viene utilizzata la proprietà Value per visualizzare i valori dei controlli selezionati. È possibile selezionare un controllo premendo TAB o facendo clic sul controllo. È inoltre possibile specificare un valore per il controllo digitandolo nell'area di immissione del testo del controllo, facendo clic una o più volte sul controllo o selezionando una pagina, una scheda o un elemento contenuti nel controllo. Il tipo di operazione che è possibile eseguire varia in base al controllo selezionato. Il valore del controllo selezionato verrà visualizzato facendo clic sul controllo CommandButton identificato dalla didascalia appropriata.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CommandButton (CommandButton1).

•	Un controllo TextBox (TextBox1).

•	Un controllo CheckBox (CheckBox1).

•	Un controllo ComboBox (ComboBox1).

•	Un controllo CommandButton (CommandButton2).

•	Un controllo ListBox (ListBox1).

•	Un controllo MultiPage (MultiPage1).

•	Due controlli OptionButton (OptionButton1 e OptionButton2).

•	Un controllo ScrollBar (ScrollBar1).

•	Un controllo SpinButton (SpinButton1).

•	Un controllo TabStrip (TabStrip1).

•	Un controllo TextBox (TextBox2).

•	Un controllo ToggleButton (ToggleButton1).

Dim i As Integer

Private Sub CommandButton1_Click()

    TextBox1.Text = "Il valore di " & ActiveControl.Name & " è " & ActiveControl.Value

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Recupera il valore del controllo corrente"

    CommandButton1.AutoSize = True

    CommandButton1.TakeFocusOnClick = False

    CommandButton1.TabStop = False

    TextBox1.AutoSize = True

    For i = 0 To 10

        ComboBox1.AddItem "È stato scelto " & (i + 1)

        ListBox1.AddItem "È stato selezionato " & (100 - i)

    Next i

    CheckBox1.TripleState = True

    ToggleButton1.TripleState = True

    TextBox2.Text = "Digitare il testo qui."

End Sub


Esempio dell'evento KeyPress

In questo esempio l'evento KeyPress viene utilizzato per copiare da un controllo TextBox a un altro il testo digitato. È possibile digitare il testo nel controllo TextBox identificato in modo appropriato.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli TextBox (TextBox1 e TextBox2).

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    TextBox2.Text = TextBox2.Text & Chr(KeyAscii)

    'Per gestire i tasti di scelta (ovvero le

    'combinazioni tra MAIUSC, CTRL e ALT e un altro

    'tasto), oppure TAB o INVIO, utilizzare l'evento

    'KeyDown o KeyUp.

End Sub

Private Sub UserForm_Initialize()

    Move 0, 0, 570, 380

    TextBox1.Move 30, 40, 220, 160

    TextBox1.MultiLine = True

    TextBox1.WordWrap = True

    TextBox1.Text = "Digitare il testo qui."

    TextBox1.EnterKeyBehavior = True

    TextBox2.Move 298, 40, 220, 160

    TextBox2.MultiLine = True

    TextBox2.WordWrap = True

    TextBox2.Text = "Il testo digitato viene copiato qui."

    TextBox2.Locked = True

 End Sub


Esempio dell'evento Zoom

In questo esempio l'evento Zoom viene utilizzato per impostare un nuovo valore per la proprietà Zoom e per aggiungere le barre di scorrimento in un form, se necessario. Viene inoltre utilizzato il controllo Label per la visualizzazione del valore corrente. È possibile specificare le dimensioni del form utilizzando il controllo SpinButton. Per impostare il valore della proprietà Zoom, fare clic sul controllo CommandButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1).

•	Un controllo SpinButton (SpinButton1).

•	Un controllo CommandButton (CommandButton1).

•	Altri controlli posizionati vicino ai bordi del form.

Private Sub CommandButton1_Click()

    Zoom = SpinButton1.Value

End Sub

Private Sub SpinButton1_SpinDown()

    Label1.Caption = SpinButton1.Value

End Sub

Private Sub SpinButton1_SpinUp()

    Label1.Caption = SpinButton1.Value

End Sub

Private Sub UserForm_Initialize()

    SpinButton1.Min = 10

    SpinButton1.Max = 400

    SpinButton1.Value = 100

    Label1.Caption = SpinButton1.Value

    CommandButton1.Caption = "Zoom"

End Sub

Private Sub UserForm_Zoom(Percent As Integer)

    Dim MyResult As Double

    If Percent > 99 Then

        ScrollBars = fmScrollBarsBoth

        ScrollLeft = 0

        ScrollTop = 0

        MyResult = Width * Percent / 100

        ScrollWidth = MyResult

        MyResult = Height * Percent / 100

        ScrollHeight = MyResult

    Else

        ScrollBars = fmScrollBarsNone

        ScrollLeft = 0

        ScrollTop = 0

    End If

End Sub


Esempio delle proprietà Max, Min e MaxLength

In questo esempio viene illustrato l'utilizzo delle proprietà Max e Min in combinazione con un controllo ScrollBar autonomo. È possibile impostare il valore delle proprietà Max e Min su un numero intero compreso tra –1000 e 1000. Nell'esempio viene inoltre utilizzata la proprietà MaxLength per limitare il numero di caratteri che è possibile digitare per i valori delle proprietà Max e Min.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1) e un controllo TextBox (TextBox1).

•	Un controllo Label (Label2) e un controllo TextBox (TextBox2).

•	Un controllo ScrollBar (ScrollBar1).

•	Un controllo Label (Label3).

Dim TempNum As Integer

Private Sub UserForm_Initialize()

    Label1.Caption = "Min da -1000 a 1000"

    ScrollBar1.Min = -1000

    TextBox1.Text = ScrollBar1.Min

    TextBox1.MaxLength = 5

    Label2.Caption = "Max da -1000 a 1000"

    ScrollBar1.Max = 1000

    TextBox2.Text = ScrollBar1.Max

    TextBox2.MaxLength = 5

    ScrollBar1.SmallChange = 1

    ScrollBar1.LargeChange = 100

    ScrollBar1.Value = 0

    Label3.Caption = ScrollBar1.Value

End Sub

Private Sub TextBox1_Change()

    If IsNumeric(TextBox1.Text) Then

        TempNum = CInt(TextBox1.Text)

        If TempNum >= -1000 And TempNum <= 1000 Then

            ScrollBar1.Min = TempNum

        Else

            TextBox1.Text = ScrollBar1.Min

        End If

    Else

        TextBox1.Text = ScrollBar1.Min

    End If

End Sub

Private Sub TextBox2_Change()

    If IsNumeric(TextBox2.Text) Then

        TempNum = CInt(TextBox2.Text)

        If TempNum >= -1000 And TempNum <= 1000 Then

            ScrollBar1.Max = TempNum

        Else

            TextBox2.Text = ScrollBar1.Max

        End If

    Else

        TextBox2.Text = ScrollBar1.Max

    End If

End Sub

Private Sub ScrollBar1_Change()

    Label3.Caption = ScrollBar1.Value

End Sub


Esempio delle proprietà LargeChange e SmallChange

In questo esempio viene illustrato l'utilizzo delle proprietà LargeChange e SmallChange in combinazione con un controllo ScrollBar autonomo. È possibile impostare il valore delle proprietà LargeChange e SmallChange su qualsiasi numero intero compreso tra 0 e 100. Nell'esempio viene inoltre utilizzata la proprietà MaxLength per limitare il numero di caratteri che è possibile digitare per i valori delle proprietà LargeChange e SmallChange.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1) e un controllo TextBox (TextBox1).

•	Un controllo Label (Label2) e un controllo TextBox (TextBox2).

•	Un controllo ScrollBar (ScrollBar1).

•	Un controllo Label (Label3).

Dim TempNum As Integer

Private Sub ScrollBar1_Change()

    Label3.Caption = ScrollBar1.Value

End Sub

Private Sub TextBox1_Change()

    If IsNumeric(TextBox1.Text) Then

        TempNum = CInt(TextBox1.Text)

        If TempNum >= 0 And TempNum <= 100 Then

            ScrollBar1.SmallChange = TempNum

        Else

            TextBox1.Text = ScrollBar1.SmallChange

        End If

    Else

        TextBox1.Text = ScrollBar1.SmallChange

    End If

End Sub

Private Sub TextBox2_Change()

    If IsNumeric(TextBox2.Text) Then

        TempNum = CInt(TextBox2.Text)

        If TempNum >= 0 And TempNum <= 100 Then

            ScrollBar1.LargeChange = TempNum

        Else

            TextBox2.Text = ScrollBar1.LargeChange

        End If

    Else

        TextBox2.Text = ScrollBar1.LargeChange

    End If

End Sub

Private Sub UserForm_Initialize()

    ScrollBar1.Min = -1000

    ScrollBar1.Max = 1000

    Label1.Caption = "SmallChange da 0 a 100"

    ScrollBar1.SmallChange = 1

    TextBox1.Text = ScrollBar1.SmallChange

    TextBox1.MaxLength = 3

    Label2.Caption = "LargeChange da 0 a 100"

    ScrollBar1.LargeChange = 100

    TextBox2.Text = ScrollBar1.LargeChange

    TextBox2.MaxLength = 3

    ScrollBar1.Value = 0

    Label3.Caption = ScrollBar1.Value

End Sub


Esempio delle proprietà ScrollBars e KeepScrollBarsVisible

In questo esempio le proprietà ScrollBars e KeepScrollBarsVisible vengono utilizzate per aggiungere le barre di scorrimento in una pagina di un controllo MultiPage e in un controllo Frame. È possibile selezionare un pulsante di opzione che specifica un valore per la proprietà KeepScrollBarsVisible.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo MultiPage (MultiPage1).

•	Un controllo Frame (Frame1).

•	Quattro controlli OptionButton (da OptionButton1 a OptionButton4).

Private Sub UserForm_Initialize()

    MultiPage1.Pages(0).ScrollBars = fmScrollBarsBoth

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsNone

    Frame1.ScrollBars = fmScrollBarsBoth

    Frame1.KeepScrollBarsVisible = fmScrollBarsNone

    OptionButton1.Caption = "Nessuna barra di scorrimento"

    OptionButton1.Value = True

    OptionButton2.Caption = "Barre di scorrimento orizzontali"

    OptionButton3.Caption = "Barre di scorrimento verticali"

    OptionButton4.Caption = "Entrambe le barre di scorrimento"

End Sub

Private Sub OptionButton1_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsNone

    Frame1.KeepScrollBarsVisible = fmScrollBarsNone

End Sub

Private Sub OptionButton2_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsHorizontal

    Frame1.KeepScrollBarsVisible = fmScrollBarsHorizontal

End Sub

Private Sub OptionButton3_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsVertical

    Frame1.KeepScrollBarsVisible = fmScrollBarsVertical

End Sub

Private Sub OptionButton4_Click()

    MultiPage1.Pages(0).KeepScrollBarsVisible = fmScrollBarsBoth

    Frame1.KeepScrollBarsVisible = fmScrollBarsBoth

End Sub


Esempio delle proprietà ScrollHeight, ScrollLeft, ScrollTop e ScrollWidth

In questo esempio una pagina di un controllo MultiPage viene utilizzata come area di scorrimento. È possibile utilizzare le barre di scorrimento della pagina Page2 del controllo MultiPage per accedere a parti della pagina che inizialmente non vengono visualizzate.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo MultiPage (MultiPage1) e che ogni pagina del controllo MultiPage contenga uno o più controlli.

Nota   Ogni pagina di un controllo MultiPage è univoca. In Page1 non sono disponibili barre di scorrimento mentre in Page2 sono visualizzate la barra di scorrimento orizzontale e quella verticale.

Private Sub UserForm_Initialize()

    MultiPage1.Pages(1).ScrollBars = fmScrollBarsBoth

    MultiPage1.Pages(1).KeepScrollBarsVisible = fmScrollBarsNone

    MultiPage1.Pages(1).ScrollHeight = 2 * MultiPage1.Height

    MultiPage1.Pages(1).ScrollWidth = 2 * MultiPage1.Width

    'Imposta ScrollHeight e ScrollWidth prima di ScrollLeft e ScrollTop

    MultiPage1.Pages(1).ScrollLeft = MultiPage1.Width / 2

    MultiPage1.Pages(1).ScrollTop = MultiPage1.Height / 2

End Sub


Esempio delle proprietà InsideHeight e InsideWidth

In questo esempio le proprietà InsideHeight e InsideWidth vengono utilizzate per ridimensionare un controllo CommandButton. È possibile fare clic su CommandButton per ridimensionarlo.

Nota   Le proprietà InsideHeight e InsideWidth sono in sola lettura.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CommandButton (CommandButton1).

Dim Resize As Single

Private Sub UserForm_Initialize()

    Resize = 0.90

    CommandButton1.Caption = "Ridimensiona pulsante"

End Sub

Private Sub CommandButton1_Click()

    CommandButton1.Move 10, 10, UserForm1.InsideWidth * Resize, UserForm1.InsideHeight * Resize

    CommandButton1.Caption = "Pulsante ridimensionato con InsideHeight e InsideWidth"

End Sub


Esempio della proprietà ListRows

In questo esempio un controllo SpinButton viene utilizzato per determinare il numero di righe incluse nell'elenco a discesa di un controllo ComboBox. È possibile modificare il valore del controllo SpinButton e quindi fare clic sul pulsante di apertura del controllo ComboBox per visualizzare l'elenco.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ComboBox (ComboBox1).

•	Un controllo SpinButton (SpinButton1).

•	Un controllo Label (Label1).

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 20

        ComboBox1.AddItem "È stato scelto " & (ComboBox1.ListCount + 1)

    Next i

    SpinButton1.Min = 0

    SpinButton1.Max = 12

    SpinButton1.Value = ComboBox1.ListRows

    Label1.Caption = "ListRows = " & SpinButton1.Value

End Sub

Private Sub SpinButton1_Change()

    ComboBox1.ListRows = SpinButton1.Value

    Label1.Caption = "ListRows = " & SpinButton1.Value

End Sub


Esempio della proprietà ListWidth

In questo esempio un controllo SpinButton viene utilizzato per determinare la larghezza dell'elenco a discesa di un controllo ComboBox. È possibile modificare il valore del controllo SpinButton e quindi fare clic sul pulsante di apertura del controllo ComboBox per visualizzare l'elenco.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ComboBox (ComboBox1).

•	Un controllo SpinButton (SpinButton1).

•	Un controllo Label (Label1).

Private Sub SpinButton1_Change()

    ComboBox1.ListWidth = SpinButton1.Value

    Label1.Caption = "ListWidth = " & SpinButton1.Value

End Sub

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 20

        ComboBox1.AddItem "È stato scelto " & (ComboBox1.ListCount + 1)

    Next i

    SpinButton1.Min = 0

    SpinButton1.Max = 130

    SpinButton1.Value = Val(ComboBox1.ListWidth)

    SpinButton1.SmallChange = 5

    Label1.Caption = "ListWidth = " & SpinButton1.Value

End Sub


Esempio delle propietà ListStyle e MultiSelect

In questo esempio le proprietà ListStyle e MultiSelect vengono utilizzate per determinare l'aspetto di un controllo ListBox. È possibile selezionare un valore per la proprietà ListStyle tramite il controllo ToggleButton e selezionare un controllo OptionButton per impostare uno dei possibili valori per la proprietà MultiSelect. L'aspetto e il tipo di selezione possibile per il controllo ListBox verranno modificati di conseguenza.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ListBox (ListBox1).

•	Un controllo Label (Label1).

•	Tre controlli OptionButton (da OptionButton1 a OptionButton3).

•	Un controllo ToggleButton (ToggleButton1).

Private Sub UserForm_Initialize()

    Dim i As Integer

    For i = 1 To 8

        ListBox1.AddItem "È stato scelto " & (ListBox1.ListCount + 1)

    Next i

    Label1.Caption = "Impostazioni per MultiSelect"

    Label1.AutoSize = True

    ListBox1.MultiSelect = fmMultiSelectSingle

    OptionButton1.Caption = "Voce singola"

    OptionButton1.Value = True

    OptionButton2.Caption = "Voci multiple"

    OptionButton3.Caption = "Voci estese"

    ToggleButton1.Caption = "ListStyle - Plain"

    ToggleButton1.Value = True

    ToggleButton1.Width = 90

    ToggleButton1.Height = 30

End Sub

Private Sub OptionButton1_Click()

    ListBox1.MultiSelect = fmMultiSelectSingle

End Sub

Private Sub OptionButton2_Click()

    ListBox1.MultiSelect = fmMultiSelectMulti

End Sub

Private Sub OptionButton3_Click()

    ListBox1.MultiSelect = fmMultiSelectExtended

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "ListStyle - Plain"

        ListBox1.ListStyle = fmListStylePlain

    Else

        ToggleButton1.Caption = "OptionButton o CheckBox"

        ListBox1.ListStyle = fmListStyleOption

    End If

End Sub


Esempio delle proprietà MouseIcon e MousePointer

In questo esempio viene illustrato come specificare il puntatore del mouse appropriato per un controllo o una situazione specifici. Con le proprietà MousePointer e MouseIcon è possibile assegnare rispettivamente uno dei numerosi puntatori del mouse disponibili o un'icona personalizzata.

Eseguire le seguenti operazioni:

•	Selezionare un puntatore del mouse nel controllo ListBox per modificare il puntatore del mouse associato al primo controllo CommandButton.

•	Fare clic sul primo controllo CommandButton per associare il relativo puntatore del mouse al secondo controllo CommandButton.

•	Fare clic sul secondo controllo CommandButton per caricare un'icona personalizzata per il relativo puntatore del mouse.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli CommandButton (CommandButton1 e CommandButton2).

•	Un controllo ListBox (ListBox1).

Nota   In questo esempio vengono utilizzati due file di icone (con estensione ico) che vengono caricati tramite la funzione LoadPicture. È possibile modificare le chiamate alle singole funzioni LoadPicture se si desidera specificare un file di icone presente nel sistema in uso.

Private Sub ListBox1_Click()

    If IsNull(ListBox1.Value) = False Then

        CommandButton1.MousePointer = ListBox1.Value

        If CommandButton1.MousePointer = fmMousePointerCustom Then

            CommandButton1.MouseIcon = LoadPicture("c:\msvc20\cdk32\samples\circ1\bix.ico")

        End If

    End If

End Sub

Private Sub CommandButton1_Click()

    CommandButton2.MousePointer = CommandButton1.MousePointer

    If CommandButton2.MousePointer = fmMousePointerCustom Then

        CommandButton2.MouseIcon = CommandButton1.MouseIcon

    End If

End Sub

Private Sub CommandButton2_Click()

    CommandButton2.MousePointer = fmMousePointerCustom

    CommandButton2.MouseIcon = LoadPicture("c:\msvc20\cdk32\samples\push\push.ico")

End Sub

Private Sub UserForm_Initialize()

    'Carica il controllo ListBox contenente le

    'possibili impostazioni di MousePointer

    ListBox1.ColumnCount = 2

    ListBox1.AddItem "fmMousePointerDefault"

    ListBox1.List(0, 1) = fmMousePointerDefault

    ListBox1.AddItem "fmMousePointerArrow"

    ListBox1.List(1, 1) = fmMousePointerArrow

    ListBox1.AddItem "fmMousePointerCross"

    ListBox1.List(2, 1) = fmMousePointerCross

    ListBox1.AddItem "fmMousePointerIBeam"

    ListBox1.List(3, 1) = fmMousePointerIBeam

    ListBox1.AddItem "fmMousePointerSizeNESW"

    ListBox1.List(4, 1) = fmMousePointerSizeNESW

    ListBox1.AddItem "fmMousePointerSizeNS"

    ListBox1.List(5, 1) = fmMousePointerSizeNS

    ListBox1.AddItem "fmMousePointerSizeNWSE"

    ListBox1.List(6, 1) = fmMousePointerSizeNWSE

    ListBox1.AddItem "fmMousePointerSizeWE"

    ListBox1.List(7, 1) = fmMousePointerSizeWE

    ListBox1.AddItem "fmMousePointerUpArrow"

    ListBox1.List(8, 1) = fmMousePointerUpArrow

    ListBox1.AddItem "fmMousePointerHourglass"

    ListBox1.List(9, 1) = fmMousePointerHourGlass

    ListBox1.AddItem "fmMousePointerNoDrop"

    ListBox1.List(10, 1) = fmMousePointerNoDrop

    ListBox1.AddItem "fmMousePointerAppStarting"

    ListBox1.List(11, 1) = fmMousePointerAppStarting

    ListBox1.AddItem "fmMousePointerHelp"

    ListBox1.List(12, 1) = fmMousePointerHelp

    ListBox1.AddItem "fmMousePointerSizeAll"

    ListBox1.List(13, 1) = fmMousePointerSizeAll

    ListBox1.AddItem "fmMousePointerCustom"

    ListBox1.List(14, 1) = fmMousePointerCustom

    ListBox1.BoundColumn = 2

    ListBox1.Value = fmMousePointerDefault

    MsgBox "ListBox1.Value =" & ListBox1.Value & "."

    CommandButton1.MousePointer = ListBox1.Value

End Sub


Esempio della proprietà EnterKeyBehavior

In questo esempio la proprietà EnterKeyBehavior viene utilizzata per controllare l'effetto della pressione di INVIO in un controllo TextBox, sia a riga singola che a righe multiple.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Due controlli ToggleButton (ToggleButton1 e ToggleButton2).

Private Sub UserForm_Initialize()

    TextBox1.EnterKeyBehavior = True

    ToggleButton1.Caption = "EnterKeyBehavior è Vero"

    ToggleButton1.Width = 70

    ToggleButton1.Value = True

    TextBox1.MultiLine = True

    ToggleButton2.Caption = "MultiLine è Vero"

    ToggleButton2.Width = 70

    ToggleButton2.Value = True

    TextBox1.Height = 100

    TextBox1.WordWrap = True

    TextBox1.Text = "Immettere qui il testo. Se EnterKeyBehavior è Vero,"& _
    " premere INVIO per creare una nuova riga. In caso contrario, premere MAIUSC+INVIO."

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        TextBox1.EnterKeyBehavior = True

        ToggleButton1.Caption = "EnterKeyBehavior è Vero"

    Else

        TextBox1.EnterKeyBehavior = False

        ToggleButton1.Caption = "EnterKeyBehavior è Falso"

    End If

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        TextBox1.MultiLine = True

        ToggleButton2.Caption = "TextBox a righe multiple"

    Else

        TextBox1.MultiLine = False

        ToggleButton2.Caption = "TextBox a riga singola"

    End If

End Sub


Esempio della proprietà Index

In questo esempio la proprietà Index viene utilizzata per modificare l'ordine delle pagine e delle schede nei controlli MultiPage e TabStrip. L'utente sceglie CommandButton1 per spostare la terza pagina e la terza scheda in prima posizione nei controlli MultiPage e TabStrip. Sceglie invece CommandButton2 per spostare la pagina e la scheda selezionata in ultima posizione.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli CommandButton (CommandButton1 e CommandButton2).

•	Un controllo MultiPage (MultiPage1).

•	Un controllo TabStrip (TabStrip1).

Dim MyPageOrTab As Object

Private Sub CommandButton1_Click()

'Sposta la terza pagina e la terza scheda in prima

'posizione nel controllo

    MultiPage1.page3.Index = 0

    TabStrip1.Tab3.Index = 0

End Sub

Private Sub CommandButton2_Click()

'Sposta la pagina e la scheda selezionate in ultima

'posizione nel controllo

    Set MyPageOrObject = MultiPage1.SelectedItem

    MsgBox "MultiPage1.SelectedItem = " & MultiPage1.SelectedItem.Name

    MyPageOrObject.Index = 4

    Set MyPageOrObject = TabStrip1.SelectedItem

    MsgBox "TabStrip1.SelectedItem = " & TabStrip1.SelectedItem.Caption

    MyPageOrObject.Index = 4

End Sub

Private Sub UserForm_Initialize()

    MultiPage1.Width = 200

    MultiPage1.Pages.Add

    MultiPage1.Pages.Add

    MultiPage1.Pages.Add

    TabStrip1.Width = 200

    TabStrip1.Tabs.Add

    TabStrip1.Tabs.Add

    TabStrip1.Tabs.Add

    CommandButton1.Caption = "Sposta terza pagina/scheda in prima posizione"

    CommandButton1.Width = 160

    CommandButton2.Caption = "Sposta selezione in ultima posizione"

    CommandButton2.Width = 140

 End Sub


Esempio delle proprietà Enabled e Locked

In questo esempio viene dimostrato come utilizzare le proprietà Enabled e Locked. Viene inoltre evidenziato come le due proprietà siano complementari. Le proprietà sono trattate separatamente ma applicate a un controllo CheckBox, in modo che sia possibile verificare le impostazioni singolarmente e in combinazione tra loro. Nell'esempio è stato inoltre incluso un secondo controllo TextBox che consente di copiare e incollare le informazioni tra i controlli TextBox e di verificare le azioni supportate dalle impostazioni di queste proprietà.

Nota   Per copiare la selezione negli Appunti, è possibile premere CTRL+C, per incollarla è possibile premere CTRL+V.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Due controlli CheckBox (CheckBox1 e CheckBox2).

•	Un secondo controllo TextBox (TextBox2).

Private Sub CheckBox1_Change()

    TextBox2.Text = "TextBox2"

    TextBox1.Enabled = CheckBox1.Value

End Sub

Private Sub CheckBox2_Change()

    TextBox2.Text = "TextBox2"

    TextBox1.Locked = CheckBox2.Value

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Text = "TextBox1"

    TextBox1.Enabled = True

    TextBox1.Locked = False

    CheckBox1.Caption = "Attivato"

    CheckBox1.Value = True

    CheckBox2.Caption = "Bloccato"

    CheckBox2.Value = False

    TextBox2.Text = "TextBox2"

End Sub


Esempio della proprietà Delay

Questo esempio è relativo al ritardo tra eventi Change, SpinUp e SpinDown successivi che vengono generati quando si tiene premuto il pulsante del mouse per modificare il valore di un controllo SpinButton o ScrollBar.

L'utente imposta un valore per l'intervallo di attesa, quindi fa clic e tiene premuto il pulsante su una delle due estremità di un controllo SpinButton. Gli eventi SpinUp e SpinDown vengono registrati in un controllo ListBox non appena vengono inizializzati.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo SpinButton (SpinButton1).

•	Due controlli OptionButton (OptionButton1 e OptionButton2).

•	Un controllo ListBox (ListBox1).

Dim EventCount As Long

Private Sub ResetControl()

    ListBox1.Clear

    EventCount = 0

    SpinButton1.Value = 5000

End Sub

Private Sub UserForm_Initialize()

    SpinButton1.Min = 0

    SpinButton1.Max = 10000

    ResetControl

    SpinButton1.Delay = 50

    OptionButton1.Caption = "Intervallo di 50 millisecondi"

    OptionButton2.Caption = "Intervallo di 250 millisecondi"

    OptionButton1.Value = True

End Sub

Private Sub OptionButton1_Click()

    SpinButton1.Delay = 50

    ResetControl

End Sub

Private Sub OptionButton2_Click()

    SpinButton1.Delay = 250

    ResetControl

End Sub

Private Sub SpinButton1_SpinDown()

    EventCount = EventCount + 1

    ListBox1.AddItem EventCount

End Sub

Private Sub SpinButton1_SpinUp()

    EventCount = EventCount + 1

    ListBox1.AddItem EventCount

End Sub


Esempio delle proprietà DropButtonStyle e ShowDropButtonWhen

In questo esempio viene dimostrato l'utilizzo di vari simboli che è possibile impostare per il pulsante di apertura di un elenco a discesa di un controllo ComboBox o TextBox. In questo caso l'utente seleziona in un controllo ComboBox una freccia come simbolo per il pulsante di apertura. Nell'esempio viene inoltre utilizzata la proprietà Locked. Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ComboBox (ComboBox1).

•	Un controllo Label (Label1).

•	Un controllo TextBox (TextBox1 sotto a Label1).

Private Sub ComboBox1_Click()

    ComboBox1.DropButtonStyle = ComboBox1.Value

    TextBox1.DropButtonStyle = ComboBox1.Value

End Sub

Private Sub UserForm_Initialize()

    ComboBox1.ColumnCount = 2

    ComboBox1.BoundColumn = 2

    ComboBox1.TextColumn = 1

    ComboBox1.AddItem "Pulsante vuoto"

    ComboBox1.List(0, 1) = 0

    ComboBox1.AddItem "Freccia verso il basso"

    ComboBox1.List(1, 1) = 1

    ComboBox1.AddItem "Tre puntini"

    ComboBox1.List(2, 1) = 2

    ComboBox1.AddItem "Sottolineatura"

    ComboBox1.List(3, 1) = 3

    ComboBox1.Value = 0

    TextBox1.Text = "TextBox1"

    TextBox1.ShowDropButtonWhen = fmShowDropButtonWhenAlways

    TextBox1.Locked = True

    Label1.Caption = "Il pulsante di apertura è valido anche per un controllo TextBox."

    Label1.AutoSize = True

    Label1.WordWrap = False

End Sub


Esempio delle proprietà LineCount e TextLength

In questo esempio vengono contati i caratteri e il numero di righe di testo in un controllo TextBox tramite le proprietà LineCount e TextLength e il metodo SetFocus. L'utente può digitare valori nel controllo TextBox e leggere i valori correnti delle proprietà LineCount e TextLength.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga i seguenti controlli:

•	Un controllo TextBox (TextBox1).

•	Un controllo CommandButton (CommandButton1).

•	Due controlli Label (Label1 e Label2).

'Premere MAIUSC+INVIO per inserire una nuova riga nella

'casella di testo.

Private Sub CommandButton1_Click()

    'Sposta innanzitutto lo stato attivo su TextBox1

    'per ottenere il conteggio delle righe

    TextBox1.SetFocus

    Label1.Caption = "LineCount = " & TextBox1.LineCount

    Label2.Caption = "TextLength = " & TextBox1.TextLength

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Leggi i conteggi"

    CommandButton1.WordWrap = True

    CommandButton1.AutoSize = True

    Label1.Caption = "LineCount = "

    Label2.Caption = "TextLength = "

    TextBox1.MultiLine = True

    TextBox1.WordWrap = True

    TextBox1.Text = "Immettere qui il testo."

End Sub


Esempio della proprietà Count

In questo esempio viene visualizzata la proprietà Count dell'insieme Controls del form e la proprietà Count che indica il numero di pagine e schede di ciascun controllo MultiPage e TabStrip.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Il form può includere un numero qualsiasi di controlli, con le seguenti limitazioni:

•	Il nome dei controlli MultiPage deve iniziare con “MultiPage”.

•	Il nome dei controlli TabStrip deve iniziare con “TabStrip”.

Nota   Per aggiungere pagine a un controllo MultiPage o schede a un controllo TabStrip, fare doppio clic sul controllo, quindi fare clic con il pulsante destro del mouse sull'area della scheda e scegliere Nuova pagina nel menu di scelta rapida.

Private Sub UserForm_Initialize()

    Dim MyControl As Control

    MsgBox "UserForm1.Controls.Count = " & Controls.Count

    For Each MyControl In Controls

        If (MyControl.Name Like "MultiPage*") Then

            MsgBox MyControl.Name & ".Pages.Count = " & MyControl.Pages.Count

        ElseIf (MyControl.Name Like "TabStrip*") Then

            MsgBox MyControl.Name & ".Tabs.Count = " & MyControl.Tabs.Count

        End If

    Next

End Sub


Esempio della proprietà Alignment

In questo esempio viene dimostrato l'utilizzo della proprietà Alignment con vari controlli OptionButton. L'utente può modificare l'allineamento facendo clic su un controllo ToggleButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli OptionButton (OptionButton1 e OptionButton2).

•	Un controllo ToggleButton (ToggleButton1).

Private Sub UserForm_Initialize()

    OptionButton1.Alignment = fmAlignmentLeft

    OptionButton2.Alignment = fmAlignmentLeft

    OptionButton1.Caption = "Allineamento con AutoSize"

    OptionButton2.Caption = "Scelta 2"

    OptionButton1.AutoSize = True

    OptionButton2.AutoSize = True

    ToggleButton1.Caption = "Sinistra"

    ToggleButton1.WordWrap = True

    ToggleButton1.Value = True

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "Sinistra"

        OptionButton1.Alignment = fmAlignmentLeft

        OptionButton2.Alignment = fmAlignmentLeft

    Else

        ToggleButton1.Caption = "Destra"

        OptionButton1.Alignment = fmAlignmentRight

        OptionButton2.Alignment = fmAlignmentRight

    End If

End Sub


Esempio della proprietà ActiveControl

In questo esempio la proprietà ActiveControl viene utilizzata in una subroutine che consente di tenere traccia dei controlli che hanno ricevuto lo stato attivo. L'evento Enter di ciascun controllo richiama la subroutine TraceFocus per identificare il controllo sul quale si trova lo stato attivo.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga i seguenti controlli:

•	Un controllo ScrollBar (ScrollBar1).

•	Un controllo ListBox (ListBox1).

•	Due controlli OptionButton (OptionButton1 e OptionButton2).

•	Un controllo Frame (Frame1).

Dim MyControl As Control

Private Sub TraceFocus()

    ListBox1.AddItem ActiveControl.Name

    ListBox1.List(ListBox1.ListCount - 1, 1) = ActiveControl.TabIndex

End Sub

Private Sub UserForm_Initialize()

    ListBox1.ColumnCount = 2

    ListBox1.AddItem "Controlli selezionati"

    ListBox1.List(0, 1) = "Indice di tabulazione"

End Sub

Private Sub Frame1_Enter()

    TraceFocus

End Sub

Private Sub ListBox1_Enter()

    TraceFocus

End Sub

Private Sub OptionButton1_Enter()

    TraceFocus

End Sub

Private Sub OptionButton2_Enter()

    TraceFocus

End Sub

Private Sub ScrollBar1_Enter()

    TraceFocus

End Sub


Esempio del metodo DropDown

In questo esempio il metodo DropDown viene utilizzato per visualizzare l'elenco in un controllo ComboBox. L'utente può visualizzare l'elenco di un controllo ComboBox facendo clic sul controllo CommandButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ComboBox (ComboBox1).

•	Un controllo CommandButton (CommandButton1).

Private Sub CommandButton1_Click()

    ComboBox1.DropDown

End Sub

Private Sub UserForm_Initialize()

    ComboBox1.AddItem "Tacchino"

    ComboBox1.AddItem "Gallina"

    ComboBox1.AddItem "Anatra"

    ComboBox1.AddItem "Oca"

    ComboBox1.AddItem "Gallo"

End Sub


Esempio dei metodi Cut e Paste con un controllo TextBox

In questo esempio i metodi Cut e Paste vengono utilizzati per tagliare testo da un controllo TextBox e incollarlo quindi in un secondo controllo TextBox.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli TextBox (TextBox1 e TextBox2).

•	Un controllo CommandButton (CommandButton1).

Private Sub UserForm_Initialize()

    TextBox1.Text = "Da TextBox1"

    TextBox2.Text = "Salve "

    CommandButton1.Caption = "Taglia e incolla"

    CommandButton1.AutoSize = True

End Sub

Private Sub CommandButton1_Click()

    TextBox2.SelStart = 0

    TextBox2.SelLength = TextBox2.TextLength

    TextBox2.Cut

    TextBox1.SetFocus

    TextBox1.SelStart = 0

    TextBox1.Paste

    TextBox2.SelStart = 0

End Sub


Esempio dei metodi Cut e Paste con un oggetto Page

In questo esempio i metodi Add, Cut e Paste vengono utilizzati per tagliare e incollare un controllo da un oggetto Page di MultiPage. Il controllo viene in tal modo aggiunto al form in modo dinamico.

In questo esempio si presume che l'utente aggiunga, tagli e infine incolli il nuovo controllo.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Tre controlli CommandButton (da CommandButton1 a CommandButton3).

•	Un controllo MultiPage (MultiPage1).

Dim MyTextBox As Control

Private Sub CommandButton1_Click()

    Set MyTextBox = MultiPage1.Pages(MultiPage1.Value).Controls.Add("Forms.TextBox.1", "MyTextBox", Visible)

    CommandButton2.Enabled = True

    CommandButton1.Enabled = False

End Sub

Private Sub CommandButton2_Click()

    MultiPage1.Pages(MultiPage1.Value).Controls.Cut

    CommandButton3.Enabled = True

    CommandButton2.Enabled = False

End Sub

Private Sub CommandButton3_Click()

    Dim MyPage As Object

    Set MyPage = MultiPage1.Pages.Item(MultiPage1.Value)

    MyPage.Paste

    CommandButton3.Enabled = False

End Sub

Private Sub UserForm_Initialize()

    CommandButton1.Caption = "Aggiungi"

    CommandButton2.Caption = "Taglia"

    CommandButton3.Caption = "Incolla"

    CommandButton1.Enabled = True

    CommandButton2.Enabled = False

    CommandButton3.Enabled = False

End Sub


Esempio della proprietà Name

In questo esempio viene visualizzata la proprietà Name di ciascun controllo di un form. Per passare tra i vari controlli inseriti direttamente in Userform, viene utilizzato l'insieme Controls.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo CommandButton (CommandButton1) e altri controlli.

Private Sub CommandButton1_Click()

    Dim MyControl As Control

    For Each MyControl In Controls

        MsgBox "MyControl.Name = " & MyControl.Name

    Next

End Sub


Esempio di accesso a una scheda

In questo esempio viene eseguito l'accesso a una singola scheda di un controllo TabStrip in modi diversi:

•	Utilizzando l'insieme Tabs con un indice numerico.

•	Utilizzando l'insieme Tabs con un indice stringa.

•	Utilizzando l'insieme Tabs con il metodo Item.

•	Utilizzando il nome del singolo oggetto Tab.

•	Utilizzando la proprietà SelectedItem.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo TabStrip (TabStrip1).

Private Sub UserForm_Initialize()

    Dim TabName As String

    For i = 0 To TabStrip1.Count - 1

        'Utilizza l'indice (numero o stringa)

        MsgBox "TabStrip1.Tabs(i).Caption = " & TabStrip1.Tabs(i).Caption

        MsgBox "TabStrip1.Tabs.Item(i).Caption = " & TabStrip1.Tabs.Item(i).Caption

        TabName = TabStrip1.Tabs(i).Name

        MsgBox "TabName = " & TabName

        MsgBox "TabStrip1.Tabs(TabName).Caption = " & TabStrip1.Tabs(TabName).Caption

        MsgBox "TabStrip1.Tabs.Item(TabName).Caption = " & TabStrip1.Tabs.Item(TabName).Caption

        'Utilizza l'oggetto Tab senza fare riferimento

        'all'insieme Tabs

        If i = 0 Then

            MsgBox "TabStrip1.Tab1. Caption = " & TabStrip1.Tab1.Caption

        ElseIf i = 1 Then

            MsgBox "TabStrip1.Tab2. Caption = " & TabStrip1.Tab2.Caption

        EndIf

        'Utilizza la proprietà SelectedItem

        TabStrip1.Value = i

        MsgBox " TabStrip1.SelectedItem.Caption = " & TabStrip1.SelectedItem.Caption

    Next i

End Sub


Esempio della proprietà Zoom

In questo esempio la proprietà Zoom viene utilizzata per ridurre o ingrandire le informazioni visualizzate in un form, in una pagina o in una cornice. Vengono utilizzati un controllo Frame, un controllo TextBox all'interno di Frame e un controllo ScrollBar. La percentuale di ingrandimento del controllo Frame viene modificata tramite la proprietà Zoom che l'utente può impostare utilizzando il controllo ScrollBar. Il controllo TextBox è stato incluso per dimostrare l'effetto dell'operazione di ingrandimento o riduzione.

Nell'esempio sono inoltre utilizzate le proprietà Max e Min per impostare l'intervallo di valori accettabili per il controllo ScrollBar.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1).

•	Un controllo ScrollBar (ScrollBar1).

•	Un secondo controllo Label (Label2).

•	Un controllo Frame (Frame1).

•	Un controllo TextBox (TextBox1 all'interno di Frame1).

Private Sub UserForm_Initialize()

    ScrollBar1.Max = 400

    ScrollBar1.Min = 10

    ScrollBar1.Value = 100

    Label1.Caption = "10  -----Percentuale delle dimensioni originali---- 400"

    Label2.Caption = ScrollBar1.Value

    Frame1.TextBox1.Text = "Immettere qui il testo."

    Frame1.TextBox1.MultiLine = True

    Frame1.TextBox1.WordWrap = True

    Frame1.Zoom = ScrollBar1.Value

End Sub

Private Sub ScrollBar1_Change()

    Frame1.Zoom = ScrollBar1.Value

    Label2.Caption = ScrollBar1.Value

End Sub


Esempio della proprietà TextColumn

In questo esempio la proprietà TextColumn viene utilizzata per identificare la colonna di dati di un controllo ListBox che fornisce i dati per la proprietà Text. Come colonna di testo viene impostata la terza colonna del controllo ListBox. Quando si seleziona una voce dal controllo ListBox, il contenuto della colonna del controllo Listbox indicata dalla proprietà TextColumn verrà visualizzato nel controllo Textbox.

Nell'esempio viene inoltre dimostrato come caricare un controllo ListBox a colonne multiple utilizzando il metodo AddItem e la proprietà List.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ListBox (ListBox1).

•	Un controllo TextBox (TextBox1).

Private Sub UserForm_Initialize()

    ListBox1.ColumnCount = 3

    ListBox1.AddItem "Riga 1, col 1"

    ListBox1.List(0, 1) = "Riga 1, col 2"

    ListBox1.List(0, 2) = "Riga 1, col 3"

    ListBox1.AddItem "Riga 2, col 1"

    ListBox1.List(1, 1) = "Riga 2, col 2"

    ListBox1.List(1, 2) = "Riga 2, col 3"

    ListBox1.AddItem "Riga 3, col 1"

    ListBox1.List(2, 1) = "Riga 3, col 2"

    ListBox1.List(2, 2) = "Riga 3, col 3"

    ListBox1.TextColumn = 3

End Sub

Private Sub ListBox1_Change()

    TextBox1.Text = ListBox1.Text

End Sub


Esempio della proprietà PictureSizeMode

In questo esempio la proprietà PictureSizeMode viene utilizzata per dimostrare tre opzioni di visualizzazione di un'immagine, ovvero l'immagine così com'è, l'immagine con dimensioni diverse ma proporzioni uguali all'originale e l'immagine ingrandita in modo da occupare interamente un determinato spazio.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Frame (Frame1).

•	Un controllo SpinButton (SpinButton1).

•	Un controllo TextBox (TextBox1).

•	Tre controlli OptionButton (da OptionButton1 a OptionButton3).

Nota   Questo esempio corrisponde a una versione ottimizzata dell'esempio della proprietà PictureAlignment, in quanto le due proprietà sono complementari. In questa versione sono state aggiunte tre subroutine di eventi per i controlli OptionButton che consentono di stabilire se l'immagine viene ritagliata, ingrandita o ridotta oppure allargata.

Dim Alignments(5) As String

Private Sub UserForm_Initialize()

    Alignments(0) = "0 - Top Left"

    Alignments(1) = "1 - Top Right"

    Alignments(2) = "2 - Center"

    Alignments(3) = "3 - Bottom Left"

    Alignments(4) = "4 - Bottom Right"

    'Specifica una bitmap presente nel sistema

    Frame1.Picture = LoadPicture("c:\winnt2\ball.bmp")

    SpinButton1.Min = 0

    SpinButton1.Max = 4

    SpinButton1.Value = 0

    TextBox1.Text = Alignments(0)

    Frame1.PictureAlignment = SpinButton1.Value

    OptionButton1.Caption = "Taglia"

    OptionButton1.Value = True

    OptionButton2.Caption = "Allarga"

    OptionButton3.Caption = "Ingrandisci/riduci"

End Sub

Private Sub OptionButton1_Click()

    If OptionButton1.Value = True Then

        Frame1.PictureSizeMode = fmPictureSizeModeClip

    End If

End Sub

Private Sub OptionButton2_Click()

    If OptionButton2.Value = True Then

        Frame1.PictureSizeMode = fmPictureSizeModeStretch

    End If

End Sub

Private Sub OptionButton3_Click()

    If OptionButton3.Value = True Then

        Frame1.PictureSizeMode = fmPictureSizeModeZoom

    End If

End Sub

Private Sub SpinButton1_Change()

    TextBox1.Text = Alignments(SpinButton1.Value)

    Frame1.PictureAlignment = SpinButton1.Value

End Sub

Private Sub TextBox1_Change()

    Select Case TextBox1.Text

    Case "0"

        TextBox1.Text = Alignments(0)

        Frame1.PictureAlignment = 0

    Case "1"

        TextBox1.Text = Alignments(1)

        Frame1.PictureAlignment = 1

    Case "2"

        TextBox1.Text = Alignments(2)

        Frame1.PictureAlignment = 2

    Case "3"

        TextBox1.Text = Alignments(3)

        Frame1.PictureAlignment = 3

    Case "4"

        TextBox1.Text = Alignments(4)

        Frame1.PictureAlignment = 4

    Case Else

        TextBox1.Text = Alignments(SpinButton1.Value)

        Frame1.PictureAlignment = SpinButton1.Value

    End Select

End Sub


Esempio della proprietà PictureAlignment

In questo esempio la proprietà PictureAlignment viene utilizzata per impostare un'immagine di sfondo. Vengono inoltre identificate le opzioni di allineamento disponibili per PictureAlignment.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Frame (Frame1).

•	Un controllo SpinButton (SpinButton1).

•	Un controllo TextBox (TextBox1).

Dim Alignments(5) As String

Private Sub UserForm_Initialize()

    Alignments(0) = "0 - Top Left"

    Alignments(1) = "1 - Top Right"

    Alignments(2) = "2 - Center"

    Alignments(3) = "3 - Bottom Left"

    Alignments(4) = "4 - Bottom Right"

    'Specifica una bitmap presente nel sistema

    Frame1.Picture = LoadPicture("c:\winnt2\ball.bmp")

    SpinButton1.Min = 0

    SpinButton1.Max = 4

    SpinButton1.Value = 0

    TextBox1.Text = Alignments(0)

    Frame1.PictureAlignment = SpinButton1.Value

End Sub

Private Sub SpinButton1_Change()

    TextBox1.Text = Alignments(SpinButton1.Value)

    Frame1.PictureAlignment = SpinButton1.Value

End Sub

Private Sub TextBox1_Change()

    Select Case TextBox1.Text

    Case "0"

        TextBox1.Text = Alignments(0)

        Frame1.PictureAlignment = 0

    Case "1"

        TextBox1.Text = Alignments(1)

        Frame1.PictureAlignment = 1

    Case "2"

        TextBox1.Text = Alignments(2)

        Frame1.PictureAlignment = 2

    Case "3"

        TextBox1.Text = Alignments(3)

        Frame1.PictureAlignment = 3

    Case "4"

        TextBox1.Text = Alignments(4)

        Frame1.PictureAlignment = 4

    Case Else

        TextBox1.Text = Alignments(SpinButton1.Value)

        Frame1.PictureAlignment = SpinButton1.Value

    End Select

End Sub


Esempio della proprietà GroupName

In questo esempio la proprietà GroupName viene utilizzata per creare due gruppi di controlli OptionButton in uno stesso form.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga cinque controlli OptionButton (da OptionButton1 a OptionButton5).

Private Sub UserForm_Initialize()

    OptionButton1.GroupName = "Dispositivi"

    OptionButton2.GroupName = "Dispositivi"

    OptionButton4.GroupName = "Dispositivi"

    OptionButton3.GroupName = "Attrezzi-Gruppo2"

    OptionButton5.GroupName = "Attrezzi-Gruppo2"

End Sub


Esempio del metodo GetFromClipboard

In questo esempio viene dimostrato lo spostamento dei dati da un controllo TextBox agli Appunti, dagli Appunti a un oggetto DataObject e da un oggetto DataObject a un altro controllo TextBox. Il metodo GetFromClipboard consente di trasferire i dati dagli Appunti a un oggetto DataObject. Sono inoltre utilizzati i metodi Copy e GetText.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli TextBox (TextBox1 e TextBox2).

•	Un controllo CommandButton (CommandButton1).

Dim MyData as DataObject

Private Sub CommandButton1_Click()

    'Per copiare testo negli Appunti, è innanzitutto

    'necessario selezionarlo

    TextBox1.SelStart = 0

    TextBox1.SelLength = TextBox1.TextLength

    TextBox1.Copy

    MyData.GetFromClipboard

    TextBox2.Text = MyData.GetText(1)

End Sub

Private Sub UserForm_Initialize()

    Set MyData = New DataObject

    TextBox1.Text = "Sposta i dati negli Appunti, in DataObject e quindi in TextBox2."

End Sub


Esempio del metodo PutInClipboard

In questo esempio viene dimostrato lo spostamento di dati da un controllo TextBox a un oggetto DataObject, dal oggetto DataObject agli Appunti e dagli Appunti a un altro controllo TextBox. Il metodo PutInClipboard consente di trasferire i dati da un oggetto DataObject agli Appunti. Sono inoltre utilizzati i metodi SetText e Paste.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli TextBox (TextBox1 e TextBox2).

•	Un controllo CommandButton (CommandButton1).

Dim MyData As DataObject

Private Sub CommandButton1_Click()

    Set MyData = New DataObject

    MyData.SetText TextBox1.Text

    MyData.PutInClipboard

    TextBox2.Paste

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Text = "Sposta i dati in DataObject, negli Appunti e quindi in TextBox2."

End Sub


Esempio delle proprietà DragBehavior e EnterFieldBehavior

In questo esempio le proprietà DragBehavior e EnterFieldBehavior vengono utilizzate per dimostrare i diversi effetti che è possibile ottenere quando si accede a un controllo e quando si trascinano informazioni da un controllo all'altro.

Vengono utilizzati due controlli TextBox. Per ciascuno di essi è possibile impostare le proprietà DragBehavior e EnterFieldBehavior e vedere quindi il risultato ottenuto eseguendo un trascinamento da un controllo all'altro.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Due controlli ToggleButton (ToggleButton1 e ToggleButton2); questi controlli sono associati a TextBox1.

•	Un controllo TextBox (TextBox2).

•	Due controlli ToggleButton (ToggleButton3 e ToggleButton4); questi controlli sono associati a TextBox2.

Private Sub UserForm_Initialize()

    TextBox1.Text = "C'era una volta in una terra lontana...,"

    ToggleButton1.Value = True

    ToggleButton1.Caption = "Trascinamento attivato"

    ToggleButton1.WordWrap = True

    TextBox1.DragBehavior = fmDragBehaviorEnabled

    ToggleButton2.Value = True

    ToggleButton2.Caption = "Richiama selezione"

    ToggleButton2.WordWrap = True

    TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

    TextBox2.Text = "XXX, YYYY"

    ToggleButton3.Value = False

    ToggleButton3.Caption = "Trascinamento disattivato"

    ToggleButton3.WordWrap = True

    TextBox2.DragBehavior = fmDragBehaviorDisabled

    ToggleButton4.Value = False

    ToggleButton4.Caption = "Seleziona tutto"

    ToggleButton4.WordWrap = True

    TextBox2.EnterFieldBehavior = fmEnterFieldBehaviorSelectAll

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

       ToggleButton1.Caption = "Trascinamento attivato"

       TextBox1.DragBehavior = fmDragBehaviorEnabled

    Else

       ToggleButton1.Caption = "Trascinamento disattivato"

       TextBox1.DragBehavior = fmDragBehaviorDisabled

    End If

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        ToggleButton2.Caption = "Richiama selezione"

        TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

    Else

        ToggleButton2.Caption = "Seleziona tutto"

        TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorSelectAll

    End If

End Sub

Private Sub ToggleButton3_Click()

    If ToggleButton3.Value = True Then

       ToggleButton3.Caption = "Trascinamento attivato"

       TextBox2.DragBehavior = fmDragBehaviorEnabled

    Else

       ToggleButton3.Caption = "Trascinamento disattivato"

       TextBox2.DragBehavior = fmDragBehaviorDisabled

    End If

End Sub

Private Sub ToggleButton4_Click()

    If ToggleButton4.Value = True Then

        ToggleButton4.Caption = "Richiama selezione"

        TextBox2.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

    Else

       ToggleButton4.Caption = "Seleziona tutto"

       TextBox2.EnterFieldBehavior = fmEnterFieldBehaviorSelectAll

    End If

End Sub


Esempio dei metodi GetFormat, GetText e SetText

In questo esempio i metodi GetFormat, GetText e SetText vengono utilizzati per trasferire testo tra un oggetto DataObject e gli Appunti.

L'utente immette il testo in un controllo TextBox e lo trasferisce quindi in un oggetto DataObject in un formato testo standard facendo clic su CommandButton1. Facendo clic su CommandButton2 il testo viene recuperato da DataObject, facendo clic su CommandButton3 il testo viene copiato da TextBox1 a DataObject in un formato personalizzato, mentre facendo clic su CommandButton4 il testo viene recuperato da DataObject in un formato personalizzato.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Quattro controlli CommandButton (da CommandButton1 a CommandButton4).

•	Un controllo Label (Label1).

Dim MyDataObject As DataObject

Private Sub CommandButton1_Click()

'Inserisce testo in formato standard negli Appunti

    If TextBox1.TextLength > 0 Then

        Set MyDataObject = New DataObject

        MyDataObject.SetText TextBox1.Text

        Label1.Caption = "Inserisci in DataObject"

        CommandButton2.Enabled = True

        CommandButton4.Enabled = False

    End If

End Sub

Private Sub CommandButton2_Click()

'Recupera il testo in formato standard dagli Appunti

    If MyDataObject.GetFormat(1) = True Then

        Label1.Caption = "Formato standard - " & MyDataObject.GetText(1)

    End If

End Sub

Private Sub CommandButton3_Click()

'Inserisce testo in formato personalizzato negli Appunti

    If TextBox1.TextLength > 0 Then

        Set MyDataObject = New DataObject

        MyDataObject.SetText TextBox1.Text, 233

        Label1.Caption = "Personalizzato in DataObject"

        CommandButton4.Enabled = True

        CommandButton2.Enabled = False

    End If

End Sub

Private Sub CommandButton4_Click()

'Recupera il testo in formato personalizzato dagli Appunti

    If MyDataObject.GetFormat(233) = True Then

        Label1.Caption = "Formato personalizzato - " & MyDataObject.GetText(233)

    End If

End Sub

Private Sub UserForm_Initialize()

    CommandButton2.Enabled = False

    CommandButton4.Enabled = False

End Sub


Esempio della proprietà CanPaste e dei metodi Paste e Copy

In questo esempio viene utilizzata la proprietà CanPaste insieme al metodo Paste per incollare in un oggetto Page di MultiPage un controllo ComboBox contenuto negli Appunti. Vengono inoltre utilizzati i metodi SetFocus e Copy per copiare un controllo dal form agli Appunti.

Per copiare il controllo ComboBox negli Appunti è sufficiente fare clic sul pulsante CommandButton1. Fare quindi doppio clic (utilizzando l'evento DblClick) su Multipage1 per incollare il controllo ComboBox nel controllo MultiPage.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Un controllo ComboBox (ComboBox1).

•	Un controllo MultiPage (MultiPage1).

•	Un controllo CommandButton (CommandButton1).

Nota   Nell'esempio è stata inoltre inclusa una subroutine che consente di incollare testo in un controllo.

Private Sub UserForm_Initialize()

    ComboBox1.AddItem "Che bella giornata!"

    CommandButton1.Caption = "Copia ComboBox negli Appunti"

    CommandButton1.AutoSize = True

End Sub

Private Sub MultiPage1_DblClick(ByVal Index As Long, ByVal Cancel As MSForms.ReturnBoolean)

    If MultiPage1.Pages(MultiPage1.Value).CanPaste = True Then

        MultiPage1.Pages(MultiPage1.Value).Paste

    Else

        TextBox1.Text = "Impossibile incollare"

    End If

End Sub

Private Sub CommandButton1_Click()

        UserForm1.ComboBox1.SetFocus

        UserForm1.Copy

End Sub

'Codice per incollare testo in un controllo

'Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

'    If ComboBox1.CanPaste = True Then

'        ComboBox1.Paste

'    Else

'        TextBox1.Text = "Impossibile incollare"

'    End If

'End Sub


Esempio del controllo ScrollBar

In questo esempio viene dimostrato l'utilizzo del controllo ScrollBar autonomo. Viene inoltre messo in evidenza come il valore del controllo cambi quando l'utente sposta la casella di scorrimento. È possibile spostare la casella di scorrimento facendo clic su una delle frecce alle estremità del controllo oppure nell'area tra la casella di scorrimento e una delle due frecce. È inoltre possibile trascinare la casella di scorrimento. In questo caso tramite l'evento Scroll verrà visualizzato un messaggio per indicare che è stata eseguita un'operazione di scorrimento per ottenere il nuovo valore.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ScrollBar (ScrollBar1).

•	Due controlli Label (Label1 e Label2). Label1 include informazioni sull'intervallo di scorrimento. In Label2 viene riportato il valore delta.

Dim ScrollSaved As Integer        'Impostazione precedente di ScrollBar

Private Sub UserForm_Initialize()

    ScrollBar1.Min = -225

    ScrollBar1.Max = 289

    ScrollBar1.Value = 0

    Label1.Caption = "-225  -----Dispositivi-----   289"

    Label1.AutoSize = True

    Label2.Caption = ""

End Sub

Private Sub ScrollBar1_Change()

    Label2.Caption = " Modifiche al dispositivo " & (ScrollSaved - ScrollBar1.Value)

End Sub

Private Sub ScrollBar1_Exit(ByVal Cancel as MSForms.ReturnBoolean)

    Label2.Caption = " Modifiche al dispositivo " & (ScrollSaved - ScrollBar1.Value)

    ScrollSaved = ScrollBar1.Value

End Sub

Private Sub ScrollBar1_Scroll()

    Label2.Caption = (ScrollSaved - ScrollBar1.Value) & " Modifiche al dispositivo tramite scorrimento"

End Sub


Esempio delle proprietà CanUndo e CanRedo e dei metodi UndoAction e RedoAction

In questo esempio viene dimostrato come annullare e ripetere operazioni di modifica del testo incluso in una casella di testo o nell'area di immissione del testo di un controllo ComboBox. Viene prima verificato se è possibile eseguire un'operazione di annullamento o ripetizione e quindi viene eseguita l'azione appropriata. Nell'esempio vengono utilizzati le proprietà CanUndo e CanRedo e i metodi UndoAction e RedoAction.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Un controllo ComboBox (ComboBox1).

•	Due controlli CommandButton (CommandButton1 e CommandButton2).

Private Sub CommandButton1_Click()

    If UserForm1.CanUndo = True Then

        UserForm1.UndoAction

        MsgBox "Annullato"

    Else

        MsgBox "Annullamento non eseguito."

    End If

End Sub

Private Sub CommandButton2_Click()

    If UserForm1.CanRedo = True Then

        UserForm1.RedoAction

        MsgBox "Ripetuto"

    Else

        MsgBox "Ripetizione non eseguita."

    End If

End Sub

Private Sub UserForm_Initialize()

    TextBox1.Text = "Immettere qui il testo."

    ComboBox1.ColumnCount = 3

    ComboBox1.AddItem "Scelta 1, colonna 1"

    ComboBox1.List(0, 1) = "Scelta 1, colonna 2"

    ComboBox1.List(0, 2) = "Scelta 1, colonna 3"

    CommandButton1.Caption = "Annulla"

    CommandButton2.Caption = "Ripeti"

End Sub


Esempio della proprietà BoundColumn

In questo esempio viene dimostrato l'effetto della proprietà BoundColumn sul valore di un controllo ListBox. L'utente può scegliere di impostare il valore di ListBox sul valore di indice della riga specificata o su una colonna di dati specificata del controllo.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ListBox (ListBox1).

•	Un controllo Label (Label1).

•	Tre controlli OptionButton (OptionButton1, OptionButton2 e OptionButton3.

Private Sub UserForm_Initialize()

    ListBox1.ColumnCount = 2

    ListBox1.AddItem "Voce 1, colonna 1"

    ListBox1.List(0, 1) = "Voce 1, colonna 2"

    ListBox1.AddItem "Voce 2, colonna 1"

    ListBox1.List(1, 1) = "Voce 2, colonna 2"

    ListBox1.Value = "Voce 1, colonna 1"

    OptionButton1.Caption = "Indice elenco"

    OptionButton2.Caption = "Colonna 1"

    OptionButton3.Caption = "Colonna 2"

    OptionButton2.Value = True

End Sub

Private Sub OptionButton1_Click()

    ListBox1.BoundColumn = 0

    Label1.Caption = ListBox1.Value

End Sub

Private Sub OptionButton2_Click()

    ListBox1.BoundColumn = 1

    Label1.Caption = ListBox1.Value

End Sub

Private Sub OptionButton3_Click()

    ListBox1.BoundColumn = 2

    Label1.Caption = ListBox1.Value

End Sub

Private Sub ListBox1_Click()

    Label1.Caption = ListBox1.Value

End Sub


Esempio della proprietà List

In questo esempio viene scambiato il contenuto delle colonne di un controllo ListBox a colonne multiple. La proprietà List viene utilizzata in due modi diversi:

1.	Per accedere ai singoli valori del controllo ListBox e scambiarli. In questo caso, gli indici della proprietà List identificano la riga e la colonna del valore specificato.

2.	Per caricare inizialmente il controllo ListBox con i valori di una matrice. In questo caso, la proprietà List non include indici.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo ListBox (ListBox1) e un controllo CommandButton (CommandButton1).

Dim MyArray(6, 3)        'Matrice contenente i valori

                         'di colonna di ListBox.

Private Sub UserForm_Initialize()

    Dim i As Single

    ListBox1.ColumnCount = 3    'Casella di riepilogo

                                'con tre colonne di dati

    'Carica valori interi in MyArray

    For i = 0 To 5

        MyArray(i, 0) = i

        MyArray(i, 1) = Rnd

        MyArray(i, 2) = Rnd

    Next i

    'Carica ListBox1

    ListBox1.List() = MyArray

End Sub

Private Sub CommandButton1_Click()

' Scambia il contenuto delle colonne 1 e 3

    Dim i As Single

    Dim Temp As Single

    For i = 0 To 5

        Temp = ListBox1.List(i, 0)

        ListBox1.List(i, 0) = ListBox1.List(i, 2)

        ListBox1.List(i, 2) = Temp

    Next i

End Sub


Esempio delle proprietà ClientHeight, ClientLeft, ClientTop e ClientWidth

In questo esempio le dimensioni di un controllo Image vengono impostate sulle dimensioni dell'area client di un controllo TabStrip quando l'utente fa clic su un controllo CommandButton. Vengono utilizzate le proprietà Height, Left, Top, Width, ClientHeight, ClientLeft, ClientTop e ClientWidth.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CommandButton (CommandButton1).

•	Un controllo TabStrip (TabStrip1).

•	Un controllo Image (Image1).

Private Sub UserForm_Initialize()

CommandButton1.Caption = "Adatta immagine a scheda"

CommandButton1.WordWrap = True

CommandButton1.AutoSize = True

End Sub

Private Sub CommandButton1_Click()

Image1.ZOrder (fmFront)          'Inserisce Image

                                    'davanti a TabStrip

'I valori di ClientLeft e ClientTop vengono misurati

'dal bordo di TabStrip, non dai bordi del form

'contenente TabStrip.

Image1.Left = TabStrip1.Left + TabStrip1.ClientLeft

Image1.Top = TabStrip1.Top + TabStrip1.ClientTop

Image1.Width = TabStrip1.ClientWidth

Image1.Height = TabStrip1.ClientHeight

End Sub


Esempio delle proprietà MultiLine, WordWrap e ScrollBars

In questo esempio viene dimostrato l'utilizzo delle proprietà MultiLine, WordWrap e ScrollBars in un controllo TextBox.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1).

•	Quattro controlli ToggleButton (da ToggleButton1 a ToggleButton4).

Per visualizzare l'intero testo inserito nel controllo TextBox, impostare le proprietà MultiLine e WordWrap su True facendo clic sui controlli ToggleButton.

Quando MultiLine è True, è possibile inserire nuove righe di testo premendo MAIUSC+INVIO.

Il valore della proprietà ScrollBars appare quando il contenuto del controllo TextBox viene modificato in modo manuale.

Private Sub UserForm_Initialize()

'Inizializza le proprietà TextBox e i controlli

'ToggleButton

TextBox1.Text = "Immettere qui il testo. Premere MAIUSC+INVIO per spostarsi su una nuova riga."

TextBox1.AutoSize = False

ToggleButton1.Caption = "AutoSize disattivata"

ToggleButton1.Value = False

ToggleButton1.AutoSize = True

TextBox1.WordWrap = False

ToggleButton2.Caption = "WordWrap disattivata"

ToggleButton2.Value = False

ToggleButton2.AutoSize = True

TextBox1.ScrollBars = 0

ToggleButton3.Caption = "ScrollBars disattivata"

ToggleButton3.Value = False

ToggleButton3.AutoSize = True

TextBox1.MultiLine = False

ToggleButton4.Caption = "Riga singola"

ToggleButton4.Value = False

ToggleButton4.AutoSize = True

 End Sub

Private Sub ToggleButton1_Click()

'Imposta la proprietà AutoSize e il controllo

'ToggleButton associato.

If ToggleButton1.Value = True Then

TextBox1.AutoSize = True

ToggleButton1.Caption = "AutoSize attivata"

Else

TextBox1.AutoSize = False

ToggleButton1.Caption = "AutoSize disattivata"

End If

End Sub

Private Sub ToggleButton2_Click()

'Imposta la proprietà WordWrap e il controllo

'ToggleButton associato

If ToggleButton2.Value = True Then

TextBox1.WordWrap = True

ToggleButton2.Caption = "WordWrap attivata"

Else

TextBox1.WordWrap = False

ToggleButton2.Caption = "WordWrap disattivata"

End If

End Sub

Private Sub ToggleButton3_Click()

'Imposta la proprietà ScrollBars e il controllo

'ToggleButton associato

If ToggleButton3.Value = True Then

TextBox1.ScrollBars = 3

ToggleButton3.Caption = "ScrollBars attivata"

Else

TextBox1.ScrollBars = 0

ToggleButton3.Caption = "ScrollBars disattivata"

End If

End Sub

Private Sub ToggleButton4_Click()

'Imposta la proprietà MultiLine e il controllo

'ToggleButton associato

If ToggleButton4.Value = True Then

TextBox1.MultiLine = True

ToggleButton4.Caption = "Righe multiple"

Else

TextBox1.MultiLine = False

ToggleButton4.Caption = "Riga singola"

End If

End Sub


Esempio di trascinamento della selezione

In questo esempio viene illustrata un'operazione di trascinamento della selezione da un controllo ListBox a un altro. Il testo trascinato viene inserito in un oggetto DataObject. Per implementare l'operazione di trascinamento della selezione vengono utilizzati i metodi SetText e StartDrag nella routine dell'evento MouseMove.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga due controlli ListBox (ListBox1 e ListBox2). È inoltre necessario aggiungere elementi al secondo controllo ListBox.

Private Sub ListBox2_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As Long, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)

    Cancel = True

    Effect = 1

End Sub

Private Sub ListBox2_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As Long, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)

    Cancel = True

    Effect = 1

    ListBox2.AddItem Data.GetText

End Sub

Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    Dim MyDataObject As DataObject

    If Button = 1 Then

        Set MyDataObject = New DataObject

        Dim Effect As Integer

        MyDataObject.SetText ListBox1.Value

        Effect = MyDataObject.StartDrag

    End If

End Sub

Private Sub UserForm_Initialize()

    For i = 1 To 10

        ListBox1.AddItem "È stato scelto " & (ListBox1.ListCount + 1)

    Next i

End Sub


Esempio di accesso a un oggetto Page

In questo esempio viene eseguito l'accesso a una singola pagina di un controllo MultiPage in modi diversi:

•	Utilizzando l'insieme Pages con un indice numerico.

•	Utilizzando l'insieme Pages con un indice stringa.

•	Utilizzando l'insieme Pages con il metodo Item.

•	Utilizzando il nome della singola pagina del controllo MultiPage.

•	Utilizzando la proprietà SelectedItem.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo MultiPage (MultiPage1).

Private Sub UserForm_Initialize()

    Dim PageNAme As String

    For i = 0 To MultiPage1.Count - 1

        'Utilizza l'indice (numerico o stringa)

        MsgBox "MultiPage1.Pages(i).Caption = " & MultiPage1.Pages(i).Caption

        MsgBox "MultiPage1.Pages.Item(i).Caption = " & MultiPage1.Pages.Item(i).Caption

        PageName = MultiPage1.Pages(i).Name

        MsgBox "PageName = " & PageName

        MsgBox "MultiPage1.Pages(PageName).Caption = " & MultiPage1.Pages(PageName).Caption

        MsgBox "MultiPage1.Pages.Item(PageName).Caption = " & MultiPage1.Pages.Item(PageName).Caption

        'Utilizza l'oggetto Page senza fare riferimento

        'all'insieme Pages

        If i = 0 Then

            MsgBox "MultiPage1.Page1.Caption= " & MultiPage1.Page1.Caption

        ElseIf i = 1 Then

            MsgBox "MultiPage1.Page2.Caption = " & MultiPage1.Page2.Caption

        End If

        'Utilizza la proprietà SelectedItem

        MultiPage1.Value = i

        MsgBox "MultiPage1.SelectedItem.Caption = " & MultiPage1.SelectedItem.Caption

    Next i

End Sub


Esempio di aggiunta di un controllo

In questo esempio il metodo Add viene utilizzato per aggiungere un controllo a un form in fase di esecuzione. L'evento AddControl viene utilizzato per verificare se il controllo è stato aggiunto.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo CommandButton (CommandButton1).

•	Un controllo Label (Label1).

Dim Mycmd as Control

Private Sub CommandButton1_Click()

Set Mycmd = Controls.Add("Forms.CommandButton.1") ', CommandButton2, Visible)

Mycmd.Left = 18

Mycmd.Top = 150

Mycmd.Width = 175

Mycmd.Height = 20

Mycmd.Caption = "Che divertente!" & Mycmd.Name

End Sub

Private Sub UserForm_AddControl(ByVal Control As MSForms.Control)

Label1.Caption = "Aggiunto controllo."

End Sub


Esempio di aggiunta di un controllo in MultiPage

In questo esempio i metodi Add, Clear e Remove vengono utilizzati per aggiungere e rimuovere un controllo da un oggetto Page di un controllo MultiPage in fase di esecuzione.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo MultiPage (MultiPage1).

•	Tre controlli CommandButton (da CommandButton1 a CommandButton3).

Dim MyTextBox As Control

Private Sub CommandButton1_Click()

Set MyTextBox = MultiPage1.Pages(0).Controls.Add("Forms.TextBox.1", "MyTextBox", Visible)

End Sub

Private Sub CommandButton2_Click()

MultiPage1.Pages(0).Controls.Clear

End Sub

Private Sub CommandButton3_Click()

If MultiPage1.Pages(0).Controls.Count > 0  Then

MultiPage1.Pages(0).Controls.Remove "MyTextBox"

End If

End Sub

Private Sub UserForm_Initialize()

CommandButton1.Caption = "Aggiungi controllo"

CommandButton2.Caption = "Cancella controlli"

CommandButton3.Caption = "Rimuovi controllo"

End Sub


Esempio del controllo ListBox

In questo esempio il contenuto di un controllo ListBox viene aggiunto ed eliminato utilizzando i metodi AddItem, RemoveItem e SetFocus e le proprietà ListIndex e ListCount.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ListBox (ListBox1).

•	Due controlli CommandButton (CommandButton1 e CommandButton2).

Dim EntryCount As Single

Private Sub CommandButton1_Click()

    EntryCount = EntryCount + 1

    ListBox1.AddItem (EntryCount & " - Selezione")

End Sub

Private Sub CommandButton2_Click()

    ListBox1.SetFocus

    'Verifica che ListBox includa un elenco di voci

    If ListBox1.ListCount >= 1 Then

        'Se non è stata selezionata alcuna voce,

        'sceglie l'ultima voce dell'elenco.

        If ListBox1.ListIndex = -1 Then

            ListBox1.ListIndex = ListBox1.ListCount - 1

        End If

        ListBox1.RemoveItem (ListBox1.ListIndex)

    End If

End Sub

Private Sub UserForm_Initialize()

    EntryCount = 0

    CommandButton1.Caption = "Aggiungi voce"

    CommandButton2.Caption = "Rimuovi voce"

End Sub


Esempio del metodo ZOrder

In questo esempio viene impostato l'ordine z di un controllo TextBox in modo che l'utente possa visualizzare l'intero controllo (spostandolo all'inizio dell'ordine z) o spostare il controllo dietro ad altri controlli (spostandolo nella posizione finale dell'ordine z).

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Tre controlli TextBox (da TextBox1 a TextBox3).

•	Un controllo ToggleButton (ToggleButton1).

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then

TextBox2.ZOrder (fmTop)   'Inserisce TextBox2

                          'all'inizio dell'ordine z

'Aggiorna la didascalia di ToggleButton per

'identificare lo stato successivo

ToggleButton1.Caption = "Porta TextBox2 in secondo piano"

Else

TextBox2.ZOrder (1)       'Sposta TextBox2 alla

                          'fine dell'ordine z

'Aggiorna la didascalia di ToggleButton per

'identificare lo stato successivo

ToggleButton1.Caption = "Porta TextBox2 in primo piano"

End If

End Sub

Private Sub UserForm_Initialize()

'Imposta caselle di testo per visualizzare l'ordine z

'del form

TextBox1.Text = "TextBox 1"

TextBox2.Text = "TextBox 2"

TextBox3.Text = "TextBox 3"

TextBox1.Height = 40

TextBox2.Height = 40

TextBox3.Height = 40

TextBox1.Width = 60

TextBox2.Width = 60

TextBox3.Width = 60

TextBox1.Left = 10

TextBox1.Top = 10

TextBox2.Left = 25    'Sovrappone TextBox2 a TextBox1

TextBox2.Top = 25

TextBox3.Left = 40    'Sovrappone TextBox3 a TextBox2, TextBox1

TextBox3.Top = 40

ToggleButton1.Value = False

ToggleButton1.Caption = "Porta TextBox2 in primo piano"

ToggleButton1.Left = 10

ToggleButton1.Top = 90

ToggleButton1.Width = 50

ToggleButton1.Height = 50

End Sub


Esempio delle proprietà Accelerator e Caption

In questo esempio le proprietà Accelerator e Caption di un controllo CommandButton vengono modificate quando viene scelto il pulsante con il mouse o con il tasto di scelta rapida. Nella routine dell'evento Click è stato inserito il codice necessario per modificare le proprietà Accelerator e Caption.

Per eseguire questo esempio, incollare il codice riportato di seguito nella sezione Dichiarazioni di un form contenente un controllo CommandButton (CommandButton1).

Private Sub UserForm_Initialize()

CommandButton1.Accelerator  = "C"   'Imposta il tasto di scelta

                                    'rapida su ALT + C

End Sub

Private Sub CommandButton1_Click ()

If CommandButton1.Caption = "OK" Then       'Verifica la didascalia, quindi la modifica.

CommandButton1.Caption = "Scelto"

CommandButton1.Accelerator  = "C"        'Imposta il tasto di scelta rapida su ALT + C

Else

CommandButton1.Caption = "OK"

CommandButton1.Accelerator  = "O"        'Imposta il tasto di scelta rapida su ALT + O

End If

End Sub


Esempio della proprietà AutoSize

In questo esempio viene illustrato l'effetto ottenuto utilizzando la proprietà AutoSize con un controllo TextBox a riga singola e a righe multiple. L'utente può immettere il testo in entrambi controlli TextBox e attivare e disattivare la proprietà AutoSize indipendentemente dal contenuto dei controlli. Viene inoltre utilizzata la proprietà Text.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli TextBox (TextBox1 e TextBox2).

•	Un controllo ToggleButton (ToggleButton1).

Private Sub UserForm_Initialize()

    TextBox1.Text = "TextBox a riga singola. Immettere qui il testo."

    TextBox2.MultiLine = True

    TextBox2.Text = "TextBox a righe multiple. Immettere qui il testo. Premere CTRL+INVIO per inserire una nuova riga."

    ToggleButton1.Value = True

    ToggleButton1.Caption = "AutoSize attivata"

    TextBox1.AutoSize = True

    TextBox2.AutoSize = True

End Sub

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        ToggleButton1.Caption = "AutoSize attivata"

        TextBox1.AutoSize = True

        TextBox2.AutoSize = True

    Else

        ToggleButton1.Caption = "AutoSize disattivata"

        TextBox1.AutoSize = False

        TextBox2.AutoSize = False

    End If

End Sub


Esempio delle proprietà Bold, Italic, Size, StrikeThrough, Underline e Weight

In questo esempio viene illustrato l'utilizzo di un oggetto Font e delle proprietà Bold, Italic, Size, StrikeThrough, Underline e Weight relative ai tipi di carattere. Queste proprietà possono essere gestite direttamente o utilizzando un alias, come in questo esempio.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1).

•	Quattro controlli ToggleButton (da ToggleButton1 a ToggleButton4).

•	Un secondo controllo Label e un controllo TextBox (Label2 e TextBox1).

Dim MyFont As StdFont

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        MyFont.Bold = True            'Utilizzo dell'alias MyFont per controllare il tipo di carattere

        ToggleButton1.Caption = "Bold attivata"

        MyFont.Size = 22              'Aumenta le dimensioni del carattere

    Else

        MyFont.Bold = False

        ToggleButton1.Caption = "Bold disattivata"

        MyFont.Size = 8               'Ripristina le dimensioni di carattere iniziali

    End If

    TextBox1.Text = Str(MyFont.Weight)  'Bold e Weight sono correlate

End Sub

Private Sub ToggleButton2_Click()

    If ToggleButton2.Value = True Then

        Label1.Font.Italic = True            'Utilizzo diretto di Label1.Font

        ToggleButton2.Caption = "Italic attivata"

    Else

        Label1.Font.Italic = False

        ToggleButton2.Caption = "Italic disattivata"

    End If

End Sub

Private Sub ToggleButton3_Click()

    If ToggleButton3.Value = True Then

        Label1.Font.Strikethrough = True            'Utilizzo diretto di Label1.Font

        ToggleButton3.Caption = "StrikeThrough attivata"

    Else

        Label1.Font.Strikethrough = False

        ToggleButton3.Caption = "StrikeThrough disattivata"

    End If

End Sub

Private Sub ToggleButton4_Click()

    If ToggleButton4.Value = True Then

        MyFont.Underline = True            'Utilizzo dell'alias MyFont per Label1.Font

        ToggleButton4.Caption = "Underline attivata"

    Else

        Label1.Font.Underline = False

        ToggleButton4.Caption = "Underline disattivata"

    End If

End Sub

Private Sub UserForm_Initialize()

    Set MyFont = Label1.Font

    ToggleButton1.Value = True

    ToggleButton1.Caption = "Bold attivata"

    Label1.AutoSize = True	'Imposta le dimensioni di Label1

    Label1.AutoSize = False

    ToggleButton2.Value = False

    ToggleButton2.Caption = "Italic disattivata"

    ToggleButton3.Value = False

    ToggleButton3.Caption = "StrikeThrough disattivata"

    ToggleButton4.Value = False

    ToggleButton4.Caption = "Underline disattivata"

    Label2.Caption = "Spessore del carattere"

    TextBox1.Text = Str(Label1.Font.Weight)

    TextBox1.Enabled = False

End Sub


Esempio di stili di bordo e colore

In questo esempio viene illustrato l'utilizzo delle proprietà BorderStyle e SpecialEffect con la visualizzazione di tutti i bordi disponibili tramite queste proprietà. Viene inoltre dimostrato come controllare le impostazioni del colore tramite le proprietà BackColor, BackStyle, BorderColor e ForeColor.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Sei controlli TextBox (da TextBox1 a TextBox6).

•	Due controlli ToggleButton (ToggleButton1 e ToggleButton2).

Private Sub UserForm_Initialize()

'Inizializza ciascun TextBox con uno stile di bordo o

'un effetto speciale e i colori di sfondo e di primo

'piano

'Per TextBox1 viene inizialmente utilizzato un valore

'della proprietà BorderStyle

TextBox1.Text = "BorderStyle-Single"

TextBox1.BorderStyle = fmBorderStyleSingle

TextBox1.BorderColor = RGB(255, 128, 128)   'Colore - Salmone

TextBox1.ForeColor = RGB(255, 255, 0)       'Colore - Giallo

TextBox1.BackColor = RGB(0, 128, 64)        'Colore - Verde n. 2

'Per i controlli TextBox da 2 a 6 vengono inizialmente

'utilizzati effetti speciali

TextBox2.Text = "Flat"

TextBox2.SpecialEffect = fmSpecialEffectFlat

TextBox2.ForeColor = RGB(64, 0, 0)          'Colore - Marrone

TextBox2.BackColor = RGB(0, 0, 255)         'Colore - Blu

'Verifica che lo stile dello sfondo per TextBox2 sia

'inizialmente opaco.

TextBox2.BackStyle = fmBackStyleOpaque

TextBox3.Text = "Etched"

TextBox3.SpecialEffect = fmSpecialEffectEtched

TextBox3.ForeColor = RGB(128, 0, 255)       'Colore - Viola

TextBox3.BackColor = RGB(0, 255, 255)       'Colore - Azzurro

'Definisce BorderColor per utilizzarlo in seguito

'(quando borderstyle=fmBorderStyleSingle)

TextBox3.BorderColor = RGB(0, 0, 0)         'Colore - Nero

TextBox4.Text = "Bump"

TextBox4.SpecialEffect = fmSpecialEffectBump

TextBox4.ForeColor = RGB(255, 0, 255)       'Colore - Fucsia

TextBox4.BackColor = RGB(0, 0, 100)         'Colore - Blu scuro

TextBox5.Text = "Raised"

TextBox5.SpecialEffect = fmSpecialEffectRaised

TextBox5.ForeColor = RGB(255, 0, 0)         'Colore - Rosso

TextBox5.BackColor = RGB(128, 128, 128)     'Colore - Grigio

TextBox6.Text = "Sunken"

TextBox6.SpecialEffect = fmSpecialEffectSunken

TextBox6.ForeColor = RGB(0, 64, 0)          'Colore - Verde oliva

TextBox6.BackColor = RGB(0, 255, 0)         'Colore - Verde n. 1

ToggleButton1.Caption = "Inverti stili"

ToggleButton2.Caption = "Sfondo transparente/opaco"

End Sub

Private Sub ToggleButton1_Click()

'Inverte i bordi di TextBox1 e TextBox3

If ToggleButton1.Value = True Then

'Sostituisce l'impostazione BorderStyle di TextBox1

'con Etched

TextBox1.Text = "Etched"

TextBox1.SpecialEffect = fmSpecialEffectEtched

'Sostituisce l'impostazione Etched di TextBox3 con

'BorderStyle

TextBox3.Text = "BorderStyle-Single"

TextBox3.BorderStyle = fmBorderStyleSingle

Else

'Reimposta TextBox1 su BorderStyle

TextBox1.Text = "BorderStyle-Single"

TextBox1.BorderStyle = fmBorderStyleSingle

'Reimposta TextBox3 su Etched

TextBox3.Text = "Etched"

TextBox3.SpecialEffect = fmSpecialEffectEtched

End If

End Sub

Private Sub ToggleButton2_Click()

'Imposta lo sfondo su opaco o trasparente

If ToggleButton2.Value = True Then

'Imposta uno sfondo trasparente per TextBox2

TextBox2.BackStyle = fmBackStyleTransparent

Else

'Reimposta uno sfondo opaco per TextBox2

TextBox2.BackStyle = fmBackStyleOpaque

End If

End Sub


Esempio della proprietà Column

'

In questo esempio vengono caricati dati in una matrice a due dimensioni e quindi due controlli ListBox utilizzando le proprietà Column e List. Durante il caricamento la proprietà Column inverte gli elementi della matrice.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga due controlli ListBox (ListBox1 e ListBox2).

Dim MyArray(6,3)

Private Sub UserForm_Initialize()

    Dim i As Single

    ListBox1.ColumnCount = 3   'La prima casella di riepilogo

                               'include 3 colonne di dati

    ListBox2.ColumnCount = 6   'La seconda casella di riepilogo

                               'include 6 colonne di dati

    'Carica valori interi nella prima colonna di MyArray

    For i = 0 To 5

        MyArray(i, 0) = i

    Next i

    'Carica la seconda e terza colonna di MyArray

    MyArray(0, 1) = "Zero"

    MyArray(1, 1) = "Uno"

    MyArray(2, 1) = "Due"

    MyArray(3, 1) = "Tre"

    MyArray(4, 1) = "Quattro"

    MyArray(5, 1) = "Cinque"

    MyArray(0, 2) = "Zero"

    MyArray(1, 2) = "Un ou Une"

    MyArray(2, 2) = "Deux"

    MyArray(3, 2) = "Trois"

    MyArray(4, 2) = "Quatre"

    MyArray(5, 2) = "Cinq"

    'Carica dati in ListBox1 e ListBox2

    ListBox1.List() = MyArray

    ListBox2.Column() = MyArray

End Sub


Esempio della proprietà ColumnWidths

In questo esempio la proprietà ColumnWidths viene utilizzata per modificare la larghezza delle colonne di un controllo ListBox a colonne multiple. Vengono inoltre utilizzati tre controlli TextBox per l'impostazione della larghezza di ogni singola colonna e l'evento Exit per specificare l'unità di misura di ciascun controllo TextBox.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo ListBox (ListBox1).

•	Tre controlli TextBox (da TextBox1 a TextBox3).

•	Un controllo CommandButton (CommandButton1).

Immettere il valore 0 per nascondere una colonna.

Dim MyArray(2, 3) As String

Private Sub CommandButton1_Click()

'ColumnWidths richiede un valore per ciascuna

'colonna, separati da punto e virgola

ListBox1.ColumnWidths = TextBox1.Text & ";" & TextBox2.Text & ";" & TextBox3.Text

End Sub

Private Sub TextBox1_Exit(ByVal Cancel as MSForms.ReturnBoolean)

'ColumnWidths accetta punti (senza indicare pt),

'pollici o centimetri; imposta i pollici come unità

'di misura predefinita

If Not (InStr(TextBox1.Text, "in") > 0 Or InStr(TextBox1.Text, "cm") > 0) Then

TextBox1.Text = TextBox1.Text & " in"

End If

End Sub

Private Sub TextBox2_Exit(ByVal Cancel as MSForms.ReturnBoolean)

'ColumnWidths accetta punti (senza indicare pt),

'pollici o centimetri; imposta i pollici come unità

'di misura predefinita

If Not (InStr(TextBox2.Text, "in") > 0 Or InStr(TextBox2.Text, "cm") > 0) Then

TextBox2.Text = TextBox2.Text & " in"

End If

End Sub

Private Sub TextBox3_Exit(ByVal Cancel as MSForms.ReturnBoolean)

'ColumnWidths accetta punti (senza indicare pt),

'pollici o centimetri; imposta i pollici come unità

'di misura predefinita

If Not (InStr(TextBox3.Text, "in") > 0 Or InStr(TextBox3.Text, "cm") > 0) Then

TextBox3.Text = TextBox3.Text & " in"

End If

End Sub

Private Sub UserForm_Initialize()

Dim i, j, Rows As Single

ListBox1.ColumnCount = 3

Rows = 2

For j = 0 To ListBox1.ColumnCount - 1

For i = 0 To Rows - 1

MyArray(i, j) = "Riga " & i & ", colonna " & j

Next i

Next j

ListBox1.List() = MyArray         'Carica MyArray in ListBox1

TextBox1.Text = "1 in"       'Colonne con larghezza iniziale di 1 pollice

TextBox2.Text = "1 in"

TextBox3.Text = "1 in"

End Sub


Esempio della proprietà ControlTipText

In questo esempio la proprietà ControlTipText viene definita per tre controlli CommandButton e due oggetti Page di un controllo MultiPage.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo MultiPage (MultiPage1).

•	Tre controlli CommandButton (da CommandButton1 a CommandButton3).

Nota   Per ciascun oggetto Page di un controllo MultiPage, la proprietà ControlTipText diventa attiva quando lo stato attivo si trova sul controllo MultiPage o su un controllo della pagina corrente di MultiPage.

Private Sub UserForm_Initialize()

MultiPage1.Page1.ControlTipText = "Attiva pagina 1"

MultiPage1.Page2.ControlTipText = "Attiva pagina 2"

CommandButton1.ControlTipText = "Descrizione"

CommandButton2.ControlTipText = "dei controlli"

CommandButton3.ControlTipText = "in uso."

End Sub


Esempio delle proprietà CurLine, CurTargetX, CurX e Text

In questo esempio le impostazioni delle proprietà CurLine, CurTargetX e CurX vengono visualizzate in un controllo TextBox a righe multiple. Tali impostazioni cambiano nell'evento KeyUp quando si digita del testo nella proprietà Text, si sposta il punto di inserimento e si estende la selezione utilizzando la tastiera.

Per eseguire l'esempio, procedere nel modo seguente:

1.	Copiare il codice riportato di seguito nella sezione Dichiarazioni di un form.

2.	Aggiungere un controllo TextBox (TextBox1) di grandi dimensioni al form.

3.	Aggiungere tre controlli TextBox (TextBox2, TextBox3 e TextBox4) in colonna.

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

TextBox2.Text = TextBox1.CurLine

TextBox3.Text = TextBox1.CurX

TextBox4.Text = TextBox1.CurTargetX

End Sub

Private Sub UserForm_Initialize()

TextBox1.MultiLine = True

TextBox1.Text = "Immettere qui il testo. Premere CTRL+INVIO per inserire una nuova riga."

End Sub


Esempio della proprietà HideSelection

'

In questo esempio viene dimostrato l'utilizzo della proprietà HideSelection nel caso di un singolo form e di più form. L'utente può selezionare il testo in un controllo TextBox e premere TAB per spostarsi sugli altri controlli, nonché spostare lo stato attivo su un secondo form. Nell'esempio vengono inoltre utilizzati il metodo SetFocus e le proprietà EnterFieldBehavior, MultiLine e Value.

Per eseguire l'esempio, procedere nel modo seguente:

1.	Copiare il codice riportato di seguito, tranne l'ultima subroutine di eventi, nella sezione Dichiarazioni di un form.

2.	Aggiungere un controllo TextBox (TextBox1) di grandi dimensioni, un controllo ToggleButton (ToggleButton1) e un controllo CommandButton (CommandButton1).

3.	Inserire nel progetto un secondo form (UserForm2).

4.	Incollare l'ultima subroutine di eventi nella sezione Dichiarazioni di UserForm2.

5.	In questo form aggiungere un controllo CommandButton (CommandButton1).

6.	Eseguire UserForm1.

' ***** Codice per UserForm1 *****

Private Sub CommandButton1_Click()

TextBox1.SetFocus

UserForm2.Show        'Visualizza il secondo form.

End Sub

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then

TextBox1.HideSelection = False

ToggleButton1.Caption = "Selezione visibile"

Else

TextBox1.HideSelection = True

ToggleButton1.Caption = "Selezione nascosta"

End If

End Sub

Private Sub UserForm_Initialize()

TextBox1.MultiLine = True

TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

'Inserisce il testo in TextBox

TextBox1.Text = "SelText indica il punto iniziale del testo selezionato o il punto di inserimento se non è selezionato alcun testo." _

& Chr$(10) & Chr$(13) & "La proprietà SelStart è sempre valida, anche quando lo stato attivo non si trova sul controllo. " _

& "L'impostazione di SelStart su un valore minore di zero genera un errore. " _

& Chr$(10) & Chr$(13) & "Con la modifica del valore di SelStart qualsiasi selezione nel controllo viene annullata, " _

& "viene inserito un punto di inserimento nel testo e la proprietà SelLength viene impostata su zero."

TextBox1.HideSelection = True

ToggleButton1.Caption = "Selezione nascosta"

ToggleButton1.Value = False

End Sub

'

' ***** Codice per UserForm2 *****

Private Sub CommandButton1_Click()

UserForm2.Hide

End Sub


Esempio delle proprietà Picture e PicturePosition

In questo esempio viene utilizzato un controllo ComboBox per visualizzare le opzioni di posizionamento dell'immagine disponibili per un controllo. Ad ogni selezione di una voce dell'elenco, vengono aggiornate l'immagine e la didascalia del controllo CommandButton. Viene inoltre utilizzato il metodo AddItem per inserire le voci nel controllo ComboBox.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Label (Label1).

•	Un controllo CommandButton (CommandButton1).

•	Un controllo ComboBox (ComboBox1).

Private Sub UserForm_Initialize()

Label1.Left = 18

Label1.Top = 12

Label1.Height = 20

Label1.Width = 190

Label1.Caption = "Seleziona la posizione dell'immagine in relazione alla didascalia."

'Aggiunge voci all'elenco della casella combinata.

'Il valore di ciascuna voce corrisponde al

'relativo valore ListIndex nella casella combinata.

ComboBox1.AddItem "In alto a sinistra"      'ListIndex = 0

ComboBox1.AddItem "Al centro a sinistra"    'ListIndex = 1

ComboBox1.AddItem "In basso a sinistra"     'ListIndex = 2

ComboBox1.AddItem "In alto a destra"        'ListIndex = 3

ComboBox1.AddItem "Al centro a destra"      'ListIndex = 4

ComboBox1.AddItem "In basso a destra"       'ListIndex = 5

ComboBox1.AddItem "Sopra a sinistra"        'ListIndex = 6

ComboBox1.AddItem "Sopra al centro"         'ListIndex = 7

ComboBox1.AddItem "Sopra a destra"          'ListIndex = 8

ComboBox1.AddItem "Sotto a sinistra"        'ListIndex = 9

ComboBox1.AddItem "Sotto al centro"         'ListIndex = 10

ComboBox1.AddItem "Sotto a destra"          'ListIndex = 11

ComboBox1.AddItem "Centrato"                'ListIndex = 12

ComboBox1.Style = fmStyleDropDownList       'Utilizza l'elenco a discesa

ComboBox1.BoundColumn = 0          'I valori della casella combinata

                                   'sono i valori ListIndex

ComboBox1.ListIndex = 0            'Imposta la casella combinata

                                   'sulla prima voce

ComboBox1.Left = 18

ComboBox1.Top = 36

ComboBox1.Width = 90

ComboBox1.ListWidth = 90

'Inizializza CommandButton1

CommandButton1.Left = 110

CommandButton1.Top = 36

CommandButton1.Height = 120

CommandButton1.Width = 120

'Nota: verificare di fare riferimento a un file

'bitmap presente nel sistema e di includere il

'percorso nel nome del file.

CommandButton1.Picture = LoadPicture("c:\windows\argyle.bmp")

CommandButton1.PicturePosition = ComboBox1.Value

End Sub

Private Sub ComboBox1_Click()

Select Case ComboBox1.Value

Case 0  'In alto a sinistra

CommandButton1.Caption = "In alto a sinistra"

CommandButton1.PicturePosition = fmPicturePositionLeftTop

Case 1  'Al centro a sinistra

CommandButton1.Caption = "Al centro a sinistra"

CommandButton1.PicturePosition = fmPicturePositionLeftCenter

Case 2  'In basso a sinistra

CommandButton1.Caption = "In basso a sinistra"

CommandButton1.PicturePosition = fmPicturePositionLeftBottom

Case 3  'In alto a destra

CommandButton1.Caption = "In alto a destra"

CommandButton1.PicturePosition = fmPicturePositionRightTop

Case 4  'Al centro a destra

CommandButton1.Caption = "Al centro a destra"

CommandButton1.PicturePosition = fmPicturePositionRightCenter

Case 5  'In basso a destra

CommandButton1.Caption = "In basso a destra"

CommandButton1.PicturePosition = fmPicturePositionRightBottom

Case 6  'Sopra a sinistra

CommandButton1.Caption = "Sopra a sinistra"

CommandButton1.PicturePosition = fmPicturePositionAboveLeft

Case 7  'Sopra al centro

CommandButton1.Caption = "Sopra al centro"

CommandButton1.PicturePosition = fmPicturePositionAboveCenter

Case 8  'Sopra a destra

CommandButton1.Caption = "Sopra a destra"

CommandButton1.PicturePosition = fmPicturePositionAboveRight

Case 9  'Sotto a sinistra

CommandButton1.Caption = "Sotto a sinistra"

CommandButton1.PicturePosition = fmPicturePositionBelowLeft

Case 10 'Sotto al centro

CommandButton1.Caption = "Sotto al centro"

CommandButton1.PicturePosition = fmPicturePositionBelowCenter

Case 11 'Sotto a destra

CommandButton1.Caption = "Sotto a destra"

CommandButton1.PicturePosition = fmPicturePositionBelowRight

Case 12 'Centrato

CommandButton1.Caption = "Centrato"

CommandButton1.PicturePosition = fmPicturePositionCenter

End Select

End Sub


Esempio di associazione tra fogli di lavoro

In questo esempio viene utilizzato un intervallo di celle di un foglio di lavoro di un controllo ListBox e, quando l'utente seleziona una riga, viene visualizzato il corrispondente indice in un'altra cella del foglio di lavoro. Vengono inoltre utilizzate le proprietà RowSource, BoundColumn e ControlSource.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo ListBox (ListBox1). Nel foglio di lavoro immettere dati nelle celle A1:E4 e verificare inoltre che la cella A6 non contenga dati.

Private Sub UserForm_Initialize()

ListBox1.ColumnCount = 5

ListBox1.RowSource = "a1:e4"

ListBox1.ControlSource = "a6"

ListBox1.BoundColumn = 0       'Inserisce ListIndex nella cella a6

End Sub


Esempio delle proprietà di selezione del testo

In questo esempio vengono visualizzate le impostazioni delle proprietà per la selezione, ovvero SelLength, SelStart e SelText, modificate quando l'utente sposta il punto di inserimento ed estende la selezione utilizzando la tastiera. Sono inoltre utilizzate le proprietà Enabled e EnterFieldBehavior.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo TextBox (TextBox1) di grandi dimensioni.

•	Tre controlli TextBox (da TextBox2 a TextBox4) in colonna.

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

TextBox2.Text = TextBox1.SelStart

TextBox3.Text = TextBox1.SelLength

TextBox4.Text = TextBox1.SelText

End Sub

Private Sub UserForm_Initialize()

TextBox1.MultiLine = True

TextBox1.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection

TextBox1.Text = "Immettere qui il testo. Premere CTRL+INVIO per inserire una nuova riga."

End Sub


Accesso ai controlli tramite l'esempio dell'insieme Controls

In questo esempio viene eseguito l'accesso ai singoli controlli dell'insieme Controls utilizzando un ciclo For Each...Next. Quando l'utente sceglie CommandButton1, gli altri controlli vengono disposti in colonna lungo il margine sinistro del form utilizzando il metodo Move.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo CommandButton (CommandButton1) e altri controlli.

Dim CtrlHeight As Single

Dim CtrlTop As Single

Dim CtrlGap As Single

Private Sub CommandButton1_Click()

Dim MyControl As Control

CtrlTop = 5

For Each MyControl In Controls

If MyControl.Name = "CommandButton1" Then

'Non spostare né ridimensionare questo controllo.

Else

'Metodo Move con argomenti predefiniti

MyControl.Move Top:=CtrlTop, Height:=CtrlHeight, Left:=5

'Metodo Move con argomenti non predefiniti

'(sinistro, alto, larghezza, altezza)

'MyControl.Move 5, CtrlTop, ,CtrlHeight

'Calcola le coordinate superiori del

'controllo successivo

CtrlTop = CtrlTop + CtrlHeight + CtrlGap

End If

Next

End Sub

Private Sub UserForm_Initialize()

CtrlHeight = 20

CtrlGap = 5

CommandButton1.Caption = "Fare clic per spostare i controlli"

CommandButton1.AutoSize = True

CommandButton1.Left = 120

CommandButton1.Top = CtrlTop

End Sub


Esempio della proprietà Cycle

In questo esempio la proprietà Cycle viene definita per un controllo Frame e due oggetti Page di un controllo MultiPage.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Un controllo Frame (Frame1).

•	Un controllo MultiPage (MultiPage1) contenente due oggetti (Page1 e Page2).

•	Due controlli CommandButton (CommandButton1 e CommandButton2).

Inserire alcuni controlli nel form, nel controllo Frame e in ciascun oggetto Page del controllo MultiPage. Ciò consente di vedere l'effetto dell'impostazione della proprietà Cycle sull'ordine di tabulazione dei controlli Frame e MultiPage.

A tale scopo l'utente deve spostarsi tra i controlli premendo TAB. Premendo CommandButton1 nell'ordine di tabulazione vengono inclusi anche i controlli del controllo Frame e degli oggetti Page, mentre premendo CommandButton2 l'ordine di tabulazione viene limitato.

Private Sub RestrictCycles()

'Limita l'ordine di tabulazione per il controllo Frame

'e gli oggetti Page

    Frame1.Cycle = fmCycleCurrentForm

    MultiPage1.Page1.Cycle = fmCycleCurrentForm

    MultiPage1.Page2.Cycle = fmCycleCurrentForm

End Sub

Private Sub UserForm_Initialize()

RestrictCycles

End Sub

Private Sub CommandButton1_Click()

'Include il controllo Frame e gli oggetti Page

'nell'ordine di tabulazione

    Frame1.Cycle = fmCycleAllForms

    MultiPage1.Page1.Cycle = fmCycleAllForms

    MultiPage1.Page2.Cycle = fmCycleAllForms

End Sub

Private Sub CommandButton2_Click()

RestrictCycles

End Sub


Esempio del metodo Move per l'insieme Controls

In questo esempio viene dimostrata l'operazione di spostamento di tutti i controlli di un form utilizzando il metodo Move con l'insieme Controls. Per spostare i controlli, l'utente deve fare clic su un controllo CommandButton.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga un controllo CommandButton (CommandButton1) e altri controlli.

Private Sub CommandButton1_Click()

    'Sposta ciascun controllo del form a destra di

    '25 punti e in alto di 25 punti.

    Controls.Move 25, -25

End Sub


Esempio della proprietà Parent

In questo esempio la proprietà Parent viene utilizzata per fare riferimento al controllo o form contenente un controllo specifico.

Per eseguire l'esempio, copiare il codice riportato di seguito nella sezione Dichiarazioni di un form. Verificare che il form contenga:

•	Due controlli Label (Label1 e Label2).

•	Un controllo CommandButton (CommandButton1).

•	Uno o più controlli di qualsiasi tipo.

Dim MyControl As Object

Dim MyParent As Object

Dim ControlsIndex As Integer

Private Sub UserForm_Initialize()

    ControlsIndex = 0

    CommandButton1.Caption = "Leggi controllo e contenitore"

    CommandButton1.AutoSize = True

    CommandButton1.WordWrap = True

End Sub

Private Sub CommandButton1_Click()

    'Elabora l'insieme Controls per UserForm

    Set MyControl = Controls.Item(ControlsIndex)

    Set MyParent = MyControl.Parent

    Label1.Caption = MyControl.Name

    Label2.Caption = MyParent.Name

    'Prepara l'indice per il controllo successivo di Userform

    ControlsIndex = ControlsIndex + 1

    If ControlsIndex >= Controls.Count Then

        ControlsIndex = 0

    End If

End Sub