Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
I controlli ScrollBar (Tutorial completo)
Le ScrollBars sono controlli che permettono di avere la piena visibilità di un documento o di un'immagine, scorrendo attraverso queste barre il contenuto di una finestra. Chi usa Windows sarà sicuramente in confidenza con questi tipi di controlli che sono tra i più comunemente utilizzati. Visual Basic riporta due tipi di barre di scorrimento: quelle orizzontali (denominate HScrollBars ossia Horizontal Scrollbars) e quelle verticali (denominate VScrollbars ossia Vertical Scrollbars). La sola differenza che intercorre tra questi due tipi di barre è l'orientamento nel piano, ossia il loro posizionamento all'interno della form. Le orizzontali si posizioneranno in senso orizzontale e le verticali in senso verticale. Si può semplicemente vedere ciascuna barra come una linea nella quale sono individuati più valori, ad intervalli regolari, dal più piccolo al più grande, che rappresentano la posizione rispetto alla barra del pulsante di scorrimento:


In questo grafico, il valore iniziale è rappresentato da 1 e quello finale da un numero più elevato (poniamo come esempio 16). Muovendosi col pulsante partendo dal valore minimo 1, si raggiungeranno via via tutti i valori intermedi, fino a raggiungere quello desiderato. Così se ad esempio la posizione del pulsante sarà quella descritta dalla figura sottostante:


allora il valore della scrollbar sarà 1 (che avevamo ipotizzato come valore di partenza). Invece spostando il pulsante in una posizione più avanzata, come quella della figura qui sotto:


il nuovo valore della ScrollBar sarà 5 (perchè ci si è spostati di 5 segmenti o tacche dall'origine o valore iniziale della ScrollBar, rappresentato da 1). A che cosa serve determinare il valore di una ScrollBar lo si vedrà poco più avanti quando presenteremo un piccolo esempio. Basti sapere per adesso che per conoscere su quale valore si è posizionata la barra di scorrimento si utilizza la proprietà Value. Quindi nel caso di una ScrollBar orizzontale (il cui nome è quello di default ossia quello impostato automaticamente quando abbiamo inserito il controllo sulla form: Hscroll1) :

Hscroll1.Value

individua il valore della barra di scorrimento sul quale si è posizionato il pulsante.
Nel caso invece di una ScrollBar verticale (il cui nome è anche qui quello di default ossia quello impostato automaticamente quando abbiamo inserito il controllo sulla form: Vscroll1) :

Vscroll1.Value

individua il valore della barra di scorrimento (questa volta verticale) sul quale si è posizionato il pulsante.
Inoltre è possibile determinare il valore minimo e quello massimo di una ScrollBar, ossia determinare l'intervallo entro il quale il pulsante può scorrere. Nell'ipotesi formulata in precedenza abbiamo posto quest'intervallo con un valore minimo di 1 ed un valore massimo di 16. Il pulsante potrà allora scorrere tra i valori (1,2,...,15,16). Si può però impostare valore minimo e massimo utilizzando valori differenti, ad esempio in modo tale da poter scorrere tra i valori (5,6,...,19,20), impostando 5 come valore minimo e 20 come massimo.
L'impostazione del valore minimo è assegnata alla proprietà Min per cui:

Hscroll1.Min = 5

indica che il valore di partenza della ScrollBar orizzontale chiamata Hscroll1 è 1. Lo stesso ragionamento e la stessa proprietà Min può essere applicata anche ad una ScrollBar verticale. Volendo infatti fissare il valore minimo di una ScrollBar verticale denominata VScroll1 a 5 si utilizzerà il seguente segmento di codice:

Vscroll1.Min = 5

La proprietà Max imposta in modo analogo il valore finale che può assumere una ScrollBar e quindi il limite che può essere raggiunto dal relativo pulsante di scorrimento. Volendo fissare il valore massimo di Hscroll1 a 20, si utlizzerà questo codice:

Hscroll1.Max = 20

mentre per fare la stessa operazione su una barra di scorrimento verticale:

Vscroll1.Max = 20

A questo punto se avessimo nel nostro piano (la form) entrambe le barre di scorrimento (orizzontale e verticale) coi valori impostati come sopra, sia l'una che l'altra garantirebbero al proprio pulsante uno scorrimento tra i valori (5,6,...,19,20).
Che cosa accade se si imposta il valore minimo superiore a quello massimo? Semplicemente si invertirà la direzione del primo grafico presentato in questa lezione, per cui il valore minimo invece che all'estrema sinistra sarà individuato all'estrema destra e viceversa per il valore massimo.

Il metodo principale associato ad un controllo di questo tipo è il metodo Change. Tale metodo individua l'evento nel quale l'utente muove col mouse il pulsante di scorrimento. Tale movimento è dato premendo sul pulsante col tasto sinistro del mouse e tenendo premuto il tasto, spostando il mouse orizzontalmente se la ScrollBar è orizzontale, o verticalmente se la ScrollBar è verticale. Attraverso il metodo Change, è possibile ad esempio sapere di volta in volta il valore sul quale ci si sposta col pulsante di scorrimento. Aggiungiamo sul piano un controllo Label e una ScrollBar orizzontale. Manteniamo i valori massimo e minimo di default (ossia Max=32767 e Min=0).
Nell'evento Change assegneremo alla Caption della Label il valore sul quale si è posizionato il pulsante:

Private Sub Hscroll1_Change()
Label1.Caption = Hscroll1.Value
End Sub

Il risultato sarà quello individuato dall'immagine qui di seguito:


Come avrete notato, appena si avvia l'applicazione la Caption di Label1 è "Label1" o comunque ciò che avete impostato nella proprietà Caption di Label1. Questo perchè ancora l'utente non ha spostato il pulsante, e quindi non è stato chiamato in causa il metodo Change. Per ovviare a tale problema si può avvisare l'applicazione di leggere al suo avvio il valore della ScrollBar, in questo modo:

Private Sub Form_Load()
Label1.Caption = Hscroll1.Value
End Sub

e completare il codice con la sottoprocedura Hscroll1_Change().
Ecco come si presenta il codice completo:

Private Sub Form_Load()
Label1.Caption = Hscroll1.Value
End Sub
Private Sub Hscroll1_Change()
Label1.Caption = Hscroll1.Value
End Sub

In più è possibile stabilire da codice che incremento di valori utilizzare per gli spostamenti del pulsante di scorrimento, cioè di qanti segmenti si procederà in avanti o indietro spostando il pulsante. In questo caso bisognerà fare distinzione tra gli spostamenti causati dal trascinamento del pulsante di scorrimento (fig.A), quelli causati dalla pressione sull'area di scorrimento (fig.B) e quelli causati dalla pressione dei due tasti recanti l'immagine di due frecce rivolte in direzione opposta (fig.C):

Fig.A: spostamento generato dalla pressione del tasto di scorrimento Fig.B: spostamento generato dalla pressione sull'area di scorrimento Fig.C: spostamento generato dalla pressione di uno dei due tasti laterali

Nel primo caso (fig.A) il pulsante si collocherà in corrispondenza del valore sul quale avete rilasciato il tasto sinistro del mouse. Nel secondo caso (fig.B) la proprietà da considerare è LargeChange, che indica appunto l'incremento di valore nel caso in cui si prema sulla barra di scorrimento:

Hscroll1.LargeChange = 10
End Sub

farà scorrere il pulsante di scorrimento sui valori 0,10,20,30... L'ultimo caso (fig.C) fa riferimento alla proprietà SmallChange che indica invece l'incremento di valore nel caso in cui si prema sulle frecce di scorrimento.:

Hscroll1.SmallChange = 1
End Sub

incrementerà o decrementerà di 1 il valore della ScrollBar orizzontale denominata Hscroll1, e quindi la posizione del pulsante di scorrimento.
L'esempio si può facilmente trasferire ad una ScrollBar verticale.
Le ultime proprietà fondamentali del controllo riguardano le dimensioni dello stesso: Top, Left, Height e Width indicano rispettivamente la distanza rispetto al limite superiore del piano dell'estremo superiore del controllo, la distanza rispetto al limite sinistro del piano del limite sinistro del controllo, l'altezza ed infine la lunghezza della ScrollBar:

Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it <% =Now %>