Tutorial
[Access]
- Michele de Nittis -
Tutorial - Activex - Controllo List View
Versione: 1
Data Versione: marted 21 dicembre 2004
Tutorial - ActiveX - Controllo List View
SOMMARIO
PREMESSA.........................................................................................................................3
INSERIMENTO DEL CONTROLLO ....................................................................................3
ARCHITETTURA DEL CONTROLLO LIST VIEW ..............................................................4
AGGIUNTA DELLE VOCI AL CONTROLLO ......................................................................5
Modalit Icon View, Small Icon View e List View......................................................................................................... 5
La modalit Report View ................................................................................................................................................. 8
ALCUNE IMPORTANTI PROPRIET DEL CONTROLLO LISTVIEW .............................10
COME LEGGERE I VALORI DEL CONTROLLO SELEZIONATI DALLUTENTE ...........14
Tutorial - ActiveX - Controllo List View
Premessa
Questo breve tutorial si propone di illustrare limpiego del controllo ActiveX
Microsoft List View Control Versione 6 allinterno di una maschera di un applicativo Access.
Questo controllo si presenta come un insieme di voci organizzate in uno dei seguenti
quattro modi:
Modo
Descrizione
Ogni voce un elemento grafico costituito da unicona e da
Icon view
unetichetta descrittiva. Lutente pu spostare ogni elemento in un
qualsiasi punto del controllo.
Small icon view
Come il precedente modo ma le icone sono pi piccole.
Ogni voce rappresentata da un elemento testuale accompagnato
List view
da uneventuale piccola icona. Gli elementi vengono mostrati incolonnati
dallalto verso il basso e da sinistra verso destra ed allineati a sinistra.
Questo modo mostra le voci in modo tabellare. Ogni voce una
Report view
riga di una tabella ed costituita da molteplici informazioni testuali e
grafiche disposte lungo le colonne.
Quanto verr detto sul componente in questione, ovviamente, di validit generale
potendosi applicare, con pochissime differenze, anche in altri ambienti di programmazione.
Inserimento del Controllo
Entrare in modalit Struttura della maschera dove si vuol collocare il controllo
ActiveX (Esempio: maschera Iniziale). Selezionare la voce Controllo ActiveX dal menu
Inserisci e scegliere la voce Microsoft ListView Control, version 6.0 dalla lista della
finestra Inserisci controllo ActiveX. Premere il bottone OK.
Tutorial - ActiveX - Controllo List View
Trascinare la sagoma del controllo nella posizione desiderata e farli assumere le
dimensioni preferite.
Architettura del controllo List View
Larchitettura del controllo si pu schematizzare come segue:
<<Collection>>
ColumnHeaders
ColumnHeader
+ Add()
ListView
+ ColumnHeaders
ListItem
+ ListItems
<<Collection>>
ListItems
+ Add()
+ SubItems()
Tutorial - ActiveX - Controllo List View
Come si vede dal suddetto schema, il controllo ListView usa due collezioni:
ColumnHeaders, che la collezione di oggetti di classe ColumHeader che rappresentano
le intestazioni delle colonne del controllo in modalit Report View, e ListItems, che la
collezione di oggetti ListItems, cio gli elementi testuali e grafici che rappresentano le voci
da visualizzare. In modalit Report View, inoltre, possibile specificare, per ogni voce,
tutte le rispettive sottovoci mediante larray SubItems().
Nel seguito illustreremo, mediante un esempio, come popolare un controllo ListView
con delle informazioni testuali e grafiche. Per quanto concerne i dettagli sulle modalit di
inserimento di informazioni grafiche (icone), si consiglia la lettura del tutorial [2] di questa
stessa serie per ulteriori approfondimenti.
Aggiunta delle voci al controllo
Esaminiamo prima le modalit Icon View, Small Icon View e List View, pi semplici,
per poi approfondire la modalit Report View pi articolata e completa. Per impostare la
modalit di visualizzazione si deve assegnare alla propriet pubblica View uno dei
seguenti valori costanti:
Costante
Valore
Visualizzazione
lvwReport
Report View
lvwIcon
Icon View
lvwList
List View
lvwSmallIcon
Small Icon View
Modalit Icon View, Small Icon View e List View
Per aggiungere un elemento di tipo ListItem al controllo ListView si deve usare il
metodo Add() della collezione ListItems, la cui segnatura la seguente:
[Link](index, key, text, icon, smallicon)
Index
Key
Text
Icon
SmallIcon
Opzionale. un numero che indica la posizione della voce
allinterno della collezione di voci. Se omesso, la voce viene
inserita in coda alla collezione. Il suo valore varia in funzione di
successivi inserimenti e cancellazioni.
Opzionale. E una stringa che rappresenta la chiave identificativa
univoca di ogni voce nella collezione. Utile per la ricerca di una
voce.
Opzionale. Rappresenta la parte testuale della voce. Viene mostrata
nel controllo, eventualmente associata ad una icona.
Opzionale. Pu essere un numero o una stringa e rappresenta,
rispettivamente, lindice o la chiave identificativa per fare
riferimento ad unimmagine del controllo ImageList associato
alloggetto ListView (propriet Icon).
Opzionale. Come il precedente parametro ma fa riferimento alla
propriet SmallIcon.
Tutorial - ActiveX - Controllo List View
Esempio.
Aggiungiamo alla maschera di prova Iniziale due controlli di tipo ImageList
(Medicinali e SmallMedicinali) contenenti, rispettivamente, i seguenti due gruppi di icone:
[Link]
[Link]
[Link]
[Link]
Controllo Medicinali
[Link]
[Link]
Controllo SmallMedicinali
Per popolare il controllo di voci impieghiamo levento Form_Load() (su
Caricamento) della finestra Iniziale:
Il risultato del predetto codice mostrato nella seguente figura:
Tutorial - ActiveX - Controllo List View
Per visualizzare i diversi modi con cui il controllo ListView mostra le informazioni,
inseriamo nella maschera Iniziale un gruppo di pulsanti dopzione e gestiamo levento
AfterUpdate (Dopo Aggiornamento).
Selezionando le diverse voci si cambia la visualizzazione del controllo List View.
Small Icon View
Icon View
Tutorial - ActiveX - Controllo List View
List View
La modalit Report View
Questa modalit di visualizzazione la pi articolata ed anche quella con maggior
potere espressivo. In sintesi possibile mostrare ciascuna delle voci del controllo
mediante informazioni di dettaglio testuali e grafiche.
Come abbiamo visto nei precedenti modi di visualizzazione, per inserire una nuova
voce nel controllo ListView necessario creare un apposto oggetto ListItem ed
aggiungerlo alla collezione ListItems mediante il metodo Add().
Per aggiungere
informazioni di dettaglio ad una voce possibile usare larray SubItems del
corrispondente oggetto ListItem.
Ad esempio, se volessimo visualizzare informazioni di dettaglio, quali la tipologia
farmaceutica e la data di scadenza di ogni farmaco visualizzato nella farmacia domestica
dellesempio precedente, si dovrebbero inserite tali informazioni nellarray SubItems di
ogni oggetto ListItem, come illustra il seguente frammento di codice.
Tutorial - ActiveX - Controllo List View
Si devono, poi, aggiungere alla collezione ColumnHeaders delloggetto ListView,
mediante il metodo Add(), tanti oggetti di classe ColumnHeader quante sono le colonne
che si vogliono mostrare. Il metodo Add() della collezione ColumnHeaders ha la
seguente sintassi:
[Link](indice, chiave, testo, larghezza, allineamento, icona)
indice
Opzionale. un numero che indica la posizione della colonna.
chiave
Opzionale. E una stringa che rappresenta la chiave identificativa
univoca di ogni voce nella collezione. Utile per la ricerca di una
voce.
Opzionale. Rappresenta la parte testuale di unintestazione di
colonna. Pu essere associata ad una icona.
Opzionale. Espressione numerica che specifica la larghezza
dell'oggetto,
in
base
allunit
di
scala
utilizzata
dal
contenitore del controllo.
Opzionale. Facoltativa. Valore intero che determina l'allineamento
del testo nell'oggetto ColumnHeader.
testo
larghezza
allineamento
icona
lvwColumnLeft
(Predefinita) Sinistra. Il testo
viene allineato a sinistra.
lvwColumnRight
Destra. Il testo viene allineato a
destra.
lvwColumnCenter
Centrato. Il testo viene centrato.
Opzionale. Pu essere un numero o una stringa e rappresenta,
rispettivamente,
lindice
o
la
chiave
identificativa
di
unimmagine del controllo ImageList associato alloggetto ListView
(propriet ColumnHeaderIcons).
Tutorial - ActiveX - Controllo List View
Esempio:
Il risultato del nuovo codice aggiunto il seguente:
Per associare a ciascunintestazione unicona, si deve impostare la propriet
ColumnHeaderIcons del controllo ListView in fase di definizione della struttura della
maschera (Design Time).
Alcune importanti Propriet del controllo ListView
Loggetto ListView, dalla versione 6, dotato di molte propriet che ne migliorano il
grado dusabilit.
10
Tutorial - ActiveX - Controllo List View
AllowColumnReorder: Booleano. Se impostato a TRUE consente allutente
di riordinare le colonne a tempo desecuzione mediante il mouse. Si provi a
selezionare lintestazione di una colonna e, tenendo premuto il tasto sinistro
del mouse, la si trascini sopra una delle altre intestazioni.
FullRowSelect: Booleano. Se impostato a TRUE consente allutente di
selezionare unintera riga, se a FALSE solo la voce della prima colonna.
GridLines: Booleano. Se impostato a TRUE, mostra una griglia nel controllo.
CheckBoxes: Booleano. Specificando True possibile far comparire una
check box per ogni voce inserita nel controllo, come mostra la seguente
figura.
Per far comparire la check box di una determinata voce (nellesempio di
figura Vitamina C) nello stato selezionato, basta impostare a True il valore della
propriet Checked del corrispondente oggetto di classe ListItem, come mostra il
seguente listato.
11
Tutorial - ActiveX - Controllo List View
E possibile ricorrere alla propriet Checked delloggetto di classe ListItem
anche per leggere lo stato del controllo Check Box associato ad una determinata
voce.
HotTracking: Booleano. Questa propriet agisce sulla visualizzazione del
controllo ListView rendendolo pi dinamico. Leffetto simile a quello
riscontrabile in alcuni dei pi comuni browser web: quando il puntatore si
sposta sul controllo cambia forma e leventuale riga selezionata cambia
colore al suo passaggio.
MultiSelect: Booleano. Se impostato a TRUE consente la selezione multipla
di pi voci.
Figura 1: Controllo LintView con le propriet HotTracking e MultiSelect impostate a True.
FlatScrollBar: Booleano. Impostando a TRUE questa propriet si cambia lo
stile grafico delle eventuali barre di scorrimento laterali.
12
Tutorial - ActiveX - Controllo List View
Sorted: Booleano. Se impostato a TRUE indica che le voci visualizzate nel
controllo di tipo ListView devono essere ordinate. Impostando, inoltre, le
propriet SortOrder e SortKey possibile specificare un particolare tipo di
ordinamento
(crescente
[lvwAscending=0]
decrescente
[lvwDescending=1]) ed una colonna come chiave dellordinamento (un
numero intero positivo che rappresenta lindice di quella colonna).
Impostando SortKey=0 (valore di default), lordinamento (crescente per
default) viene eseguito sulla propriet Text degli oggetti ListItem della
collezione ListItems. Nella seguente figura illustrato lordinamento
crescente delle voci del controllo ListView, assumendo come chiave
dellordinamento la terza colonna (OrderKey=2), ovvero la data di scadenza
dei medicinali.
Figura 2: Ordinamento sulla data di scadenza
ATTENZIONE:
Lordinamento non stato eseguito sui valori dei dati contenuti nella terza
colonna ma sulle stringhe rappresentative di quei dati. Lordinamento, pertanto,
testuale.
SelectedItem: una propriet in lettura e scrittura. Consente di leggere
loggetto di classe ListItem che stato selezionato dallutente o di
impostare una particolare voce del controllo come selezionata per default.
13
Tutorial - ActiveX - Controllo List View
Listato 1: Uso della propriet SelectedItem in scrittura.
Molte altre sono le propriet del controllo ListView che non riportiamo nel presente
tutorial, il cui scopo non quello di fare una trattazione esaustiva di questo particolare
controllo ma quello di fornire una panoramica generale del suo funzionamento e delle
modalit dimpiego. Ulteriori e pi dettagliate informazioni sono reperibili nellhelp in linea
di Visual Basic.
Come leggere i valori del controllo selezionati dallutente
Per accedere ai valori della voce del controllo (riga) selezionata dallutente
necessario recuperare il corrispondente oggetto di classe Listitem.
Set LI= [Link]
Una volta ottenuto loggetto di classe ListItem possibile leggere i valori delle sue
propriet:
[Link];
[Link](x), con x { 1, 2, 3, N}
Per conoscere il numero N di oggetti di classe ListItem associati ad un oggetto di
classe ListView, basta ricordare che la propriet ListItems delloggetto ListView un
oggetto di classe Collection. Dunque:
N = [Link]()
Vedere Anche
[1] Tutorial Il Controllo TreeView (ActiveX);
[2] Tutorial Oggetto Imegelist: Aggiungere immagini ad un controllo Common
Control.
14