I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET...

34
1 Corso di Programmazione Cefi Informatica I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica Questi controlli sono liste con stile visuale proprio in grado di contenere elementi. La gestione di tali elementi è molto simile a quella degli ArrayList. L'unica differenza sta nel fatto che in questo caso, tutte le modifiche vengono rese visibili sull'interfaccia e influiscono, quindi, su ciò che l'utente può vedere. Una volta aggiunte alla windows form, il loro aspetto sarà simile a questo: ListBox e ComboBox

Transcript of I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET...

Page 1: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

1

Corso di Programmazione Cefi Informatica

I CONTROLLI IN VB.NET

VB.NET

Corso di Programmazione Cefi Informatica

Questi controlli sono liste con stile visuale proprio in grado di contenere elementi. La

gestione di tali elementi è molto simile a quella degli ArrayList. L'unica differenza sta

nel fatto che in questo caso, tutte le modifiche vengono rese visibili sull'interfaccia e

influiscono, quindi, su ciò che l'utente può vedere. Una volta aggiunte alla windows

form, il loro aspetto sarà simile a questo:

ListBox e ComboBox

Page 2: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

2

Corso di Programmazione Cefi Informatica

ListBox e ComboBox

Corso di Programmazione Cefi Informatica

� ColumnWidth : indica la larghezza delle colonne in una listbox in cui MultiColumn

= True. Lasciare 0 per il valore di default

� HorizontalExtent : indica di quanti pixel è possibile scorrere la listbox in

orizzontale, se la scrollbar orizzontale è attiva

� HorizontalScrollbar : determina se attivare la scrollbar orizzontale. Di solito,

questa proprietà viene impostata a True quando la listbox dispone di più colonne

� MultiColumn : determina se la listbox è a più colonne. In questa modalità, una

volta terminata l'altezza della lista, gli elementi vengono posizionati di lato anzichè

sotto, ed è quindi possibile visualizzarli spostandosi a destra o a sinistra. Un esempio

visuale:

Proprietà della ListBox

Page 3: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

3

Corso di Programmazione Cefi Informatica

ListBox MultiColonna

Corso di Programmazione Cefi Informatica

� ScrollAlwaysVisible : determina se le scrollbar vengono visualizzate sempre,

indipendentemente dal numero di elementi presenti. Infatti quando questa proprietà è

disabilitata, se gli elementi sono pochi e possono essere posizionati nell'area della lista

senza nasconderne nessuno, non viene visualizzata la scrollbar, che appare quando gli

elementi cominciano a diventare troppi. Con questa proprietà attiva, essa è sempre

visibile e, se inutilizzata, si disabilita automaticamente

� SelectionMode : proprietà enumerata che determina in quale modo sia possibile

selezionare gli elementi. Può assumere quattro valori: None (non è possibile

selezionare niente), One (un solo elemento alla volta), MultiSimple (più elementi

selezionabili con un click), MultiExtended (più elementi, selezionabili solo tenendo

premuto Ctrl e spostando il mouse sopra di essi)

Proprietà della ListBox

Page 4: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

4

Corso di Programmazione Cefi Informatica

� DropDownHeight : determina l'altezza, in pixel, del menù a discesa

� DropDownStyle : determina lo stile del menù a discesa. Può assumere tre valori:

Simple (il menù a discesa è sempre visibile, e può essere assimilato a una listbox),

DropDown (stile normale come nell'immagine di esempio proposta a inizio capitolo,

ma è possibile modificare il testo dell'elemento selezionato scrivendo entro la casella),

DropDownList (stile normale, non è possibile modificare l'elemento selezionato in

alcun modo, se non selezionandone un altro). Questa è un'immagine di una combobox

con DropDownStyle = Simple:

Proprietà della ComboBox

Corso di Programmazione Cefi Informatica

� FlatStyle : lo stile visuale della ComboBox. Può assumere quattro valori: Flat o

Popup (la combobox è grigia e schiacciata, senza contorni 3D), System o

Professional (la combobox è azzurra e rilevata, con contorni 3D)

� MaxDropDownItems : il numero massimo di elementi visualizzabili nel menù a

discesa

� MaxLength : determina il massimo numero di caratteri di testo che possono

essere inseriti come input nella casella della combobox. Questa proprietà ha senso

solo se DropDownStyle non è impostata su DropDownList, poichè tale stile impedisce

di modificare il contenuto della combobox tramite tastiera, come già detto.

Proprietà della ComboBox

Page 5: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

5

Corso di Programmazione Cefi Informatica

� FormatString : dato che queste liste possono contenere anche numeri e date (e

altri oggetti, ma non è consigliabile aggiungere tipi diversi da quelli base), la proprietà

FormatString indica come tali valori debbano essere visualizzati. Cliccando sul

pulsante con i tre puntini nella finestra delle proprietà su questa voce, apparirà una

finestra di dialogo con i seguenti formati standard: No Formatting, Numeric,

DateTime e Scientific.

� FormatEnabled : determina se è abilitata la formattazione degli elementi tramite

FormatString

Proprietà della ComboBox e della ListBox

Corso di Programmazione Cefi Informatica

� IntegralHeight : quando attiva, questa proprietà forza la lista ad assumere un

valore di altezza (Size.Height) che sia un multiplo di ItemHeight, in modo tale che gli

elementi siano sempre visibili interamente. Se disattivata, gli elementi possono anche

venire "tagliati" fuori dalla lista. Un esempio:

Proprietà della ComboBox e della ListBox

Page 6: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

6

Corso di Programmazione Cefi Informatica

� ItemHeight : altezza, in pixel, di un elemento

� Items : collezione di tutti gli elementi. Gode di tutti i metodi consueti delle liste,

quali Add, Remove, IndexOf, Insert, eccetera...

� Sorted : indica se gli elementi devono essere ordinati alfabeticamente

Proprietà della ComboBox e della ListBox

Corso di Programmazione Cefi Informatica

Il controllo NumericUpDown

Questo controllo torna utile quando si vuole proporre all'utente una scelta di un numero,

intero o decimale, compreso tra un minimo e un massimo. Ad esempio, il semplice

programma che verrà illustrato chiede di indovinare un numero casuale da 0 a 100

generato dal computer. Con l'uso di una textbox, l'utente potrebbe commettere un

errore di battitura e inserire in input caratteri non validi, mandando così in crash il

programma: la soluzione potrebbe essere usare un Try, ma si sprecherebbe spazio. La

soluzione ideale sarebbe fare uso di NumericUpDown. Le proprietà caratteristiche:

Page 7: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

7

Corso di Programmazione Cefi Informatica

Le proprietà di NumericUpDown

� DecimalPlaces : i posti decimali dopo la virgola. Se impostata a 0, sarà possibile immettere solo numeri interi

� Hexadecimal : determina se visualizzare il numero in notazione esadecimale (solo per numeri interi positivi)

� Increment : il fattore di incremento/decremento automaticamente aggiunto/sottratto

quando l'utente clicca sulle frecce del controllo

� InterceptArrowKey : determina se il controllo debba intercettare e interpretare la pressione delle frecce

direzionali su/giù da testiera

� Maximum : massimo valore numerico

� Minimum : minimo valore numerico

� ThousandSeparator : indica se visualizzare il separatore delle migliaia

� Value : il valore indicato

� UpDownAlign : la posizione delle frecce sul controllo

Corso di Programmazione Cefi Informatica

Esempio di NumericUpDown

Dopo aver posizionato questi controlli:

• Una Label Label1, Text = "Clicca Genera per generare un numero casuale, quindi

prova a indovinare!"

• Un pulsante cmdGenerate, Text = "Genera"

• Un pulsante cmdTry, Text = "Prova"

• Un NumericUpDown nudValue, con le proprietà standard

• Una Label lblNumber, Text = "***", Font = Microsoft Sans Serif Grassetto 16pt,

AutoSize =False, TextAlign = MiddleCenter

Page 8: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

8

Corso di Programmazione Cefi Informatica

Esempio

Corso di Programmazione Cefi Informatica

Esempio (1/3)

Page 9: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

9

Corso di Programmazione Cefi Informatica

Esempio (2/3)

Corso di Programmazione Cefi Informatica

Esempio (3/3)

Page 10: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

10

Corso di Programmazione Cefi Informatica

Questi controlli servono a

visualizzare delle finestre

di dialogo che aiutino

l'utente a scegliere uno o

più files da aprire o

salvare.La loro interfaccia

è simile a questa:

OpenFileDialog e SaveFileDialog

Corso di Programmazione Cefi Informatica

� AddExtension : se il nome del file da aprire/salvare non ha un estensione, il controllo

l'aggiunge automaticamente sulla base della proprietà DefaultExt o Filter

� CheckFileExists : controlla se il file selezionato esista

� CheckPathExists : controlla se la cartella selezionata esista

� DefaultExt : l'estenzione predefinita su cui si basa la proprietà AddExtension

� FileName : il nome del file visualizzato di default nella textbox del controllo, e

modificato dopo l'interazione con l'utente

� Filter : la proprietà più importante dopo FileName. Serve a definire quali tipi di file

siano visualizzati dal controllo.

Le proprietà

Page 11: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

11

Corso di Programmazione Cefi Informatica

Nella finestra di dialogo, infatti, come mostra l'immagine sopra riportata, poco sotto

alla textbox contenente il nome del file, c'è una combobox che permette di selezionare

il "filtro", per l'appunto, ossia quali estensioni prendere in considerazione (nell'esempio

"File di testo", con estensione *.txt, quella che si prenderà in esame nell'esempio). Ci

sono delle regole standard per la costruzione della stringa che deve essere passata a

questa proprietà. Il formato corretto è:

Descrizione file|*.estensione1;*.estensione2|Descrizi one file|...

Le proprietà

Corso di Programmazione Cefi Informatica

Se, quindi, si volessero visualizzare solo file multimediali, divisi in musica e video,

questo sarebbe il valore di Filter:

"Musica|*.mp3;*.wav;*.wma;*.ogg;*.mid|Video|*.mpg;*.mp4;*.wmv;*.avi". Per i file di

testo "File di testo|*.txt" e per tutti i file "Tutti i file|*.*"

� InitialDirectory: la cartella iniziale predefinita

� MultiSelect: se vero, si potranno selezionare più file (creando un riquadro col

puntatore o selezionandoli manualmente uno ad uno tenendo premuto Ctrl)

� Title: il titolo della finestra di dialogo

� ValidatesName: controlla che i nomi dei file non contengano caratteri vietati

� OverWritePrompt: (solo per SaveFileDialog) controlla se il file selezionato ne

sovrascrive un altro e chiede se procedere o no

Le proprietà

Page 12: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

12

Corso di Programmazione Cefi Informatica

FolderBrowserDialog

Corso di Programmazione Cefi Informatica

Permette di scegliere una cartella mediante un menù di navigazione nelle directory del computer,

completamente automatico. Le proprietà fondamentali di questo controllo sono:

� Description: una breve descrizione della cartella che si deve selezionare, al fine

puramente esplicativo per l'utente, che verrà visualizzata in cima alla finestra di dialogo

� RootFoler: indica qual è la cartella da cui si inizia la navigazione del menù, mediante un

enumeratore

� SelectedPath: indica la directory selezionata quando viene visualizzata la finestra di

dialogo

� ShowNewFolderButton: determina se deve essere visualizzato il pulsante che permette di

creare nuove cartelle al momento

Una volta che la finestra di dialogo sarà chiusa, la cartella scelta sarà disponibile sottoforma di

stringa mediante la proprietà SelectedPath.

FolderBrowserDialog

Page 13: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

13

Corso di Programmazione Cefi Informatica

FontDialog

Corso di Programmazione Cefi Informatica

Semplice finestra di dialogo che permette di scegliere il font (carattere) con cui scrivere

su un controllo. Se, ad esempio, avessimo un editor di testo, potremmo far scegliere

all'utente, con questo controllo, con quale carattere scrivere. La procedura ShowDialog()

(che è comune a tutte le finestre di dialogo) permetter di visualizzare la finestra di scelta

del carattere, personalizzabile con molte opzioni. Infine, la proprietà Font conterrà il tipo

di font scelto, sotto forma di una proprietà di tipo complesso System.Drawing.Font: in

genere tutti i controlli godono di questa proprietà, quindi è sufficiente scrivere una cosa

del genere per cambiare il font di un controllo:

[controllo].Font = FontDialog.Font

FontDialog

Page 14: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

14

Corso di Programmazione Cefi Informatica

Le proprietà principali:

� AllowSimulation : se vero, viene visualizzata un'anteprima del font

� Color: il colore selezionato di default

� Font: il font selezionato di default

� FontMustExists: se vero, controlla l'esistenza del font nella cartella C:\WINDOWS\Fonts

� MaxSize: la massima grandezza (in punti) del font: lasciare 0 per quella preimpostata

� MinSize: la minima grandezza (in punti) del font: lasciare 0 per quella preimpostata

� ShowColor: determina se visualizzare anche la scelta del colore

� ShowEffects: determina se visualizzare anche gli stili di formattazione barrato,

grassetto, sottolineato e corsivo

Proprietà

Corso di Programmazione Cefi Informatica

Il controllo DateTimePicker

Ci sono due proprietà importanti per questo controllo:

� Format : La prima permette di definire il formato del controllo; è rappresentata da un

enumeratore che può assumere quattro valori

1. Long : data in formato esteso

2. Short : data in formato breve

3. Time : ora in formato esteso

4. Custom : personalizzato.

� CustomFormat: Questa proprietà (è una stringa) viene utilizzata nel caso in cui

viene usato l’opzione Custom. Nella stringa si possono presenziare queste

sequenze di caratteri:

Page 15: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

15

Corso di Programmazione Cefi Informatica

d : giorno del mese, con una o due cifre a seconda dei casi

dd : giorno del mese, sempre con due cifre (vengono aggiunti zeri sulla sinistra nel

caso manchino posti)

ddd : giorno della settimana, abbreviato a tre caratteri secondo la cultura corrente

dddd : giorno della settimana, con nome completo

M : mese, con una o due cifre a seconda dei casi

MM : mese, sempre con due cifre

MMM : nome del mese, abbreviato a tre caratteri secondo la cultura corrente

MMMM : nome completo del mese

y : anno, con una o due cifre a seconda dei casi

yy : anno, sempre con due cifre

Il controllo DateTimePicker

Corso di Programmazione Cefi Informatica

yyyy : anno, a quattro cifre

H : ora, in formato 24 ore con una o due cifre

HH : ora, in formato 24 ore con due cifre

h : ora, in formato 12 ore, con una o due cifre

hh : ora, in formato 12 ore, con due cifre

m : minuti, con una o due cifre

mm : minuti, con due cifre

s : secondi, con una o due cifre

ss : secondi, con due cifre

f : frazioni di secondo (un numero qualsiasi da uno a sette di "f" consecutive

corrisponde ad altrettanti decimali)

Il controllo DateTimePicker

Page 16: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

16

Corso di Programmazione Cefi Informatica

Esempio

Data.CustomFormat = "dddd d MMMM ,ore HH:mm“

Data.Format = DateTimePickerFormat.Custom

Dove Data è il nome del controllo DateTimePicker

La data viene visualizzata con questo formato:

[nome giorno] [giorno] [nome mese] [anno], ore

[ora]:[minuti ]

Corso di Programmazione Cefi Informatica

In fase di progettazione, se si vogliono aggiungere immagini a controlli come Button,

Label, SplitButton, ToolBox e simili è sufficiente selezionare la proprietà Image,

aprire la finestra di dialogo mediante pressione sul pulsante che appare, scegliere

quindi un file immagine dall'Hard Disk o dalle risorse del progetto, e confermare la

scelta per ottenere un effetto ottimo. Tuttavia, ciò non è sempre possibile; ad

esempio se a run-time si vogliono associare determinate icone a elementi di una lista

che non è possibile prevedere durante la stesura del codice. In situazioni simili, il

controllo che viene in aiuto del programmatore si chiama ImageList . Esso

costituisce una lista, ordinata secondo indici e chiavi, che contiene immagini

precedentemente caricate dallo sviluppatore: tutte queste vengono ridimensionate

secondo una dimensione fissata del controllo e hanno una limitazione di profondità di

Il controllo ImageList

Page 17: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

17

Corso di Programmazione Cefi Informatica

colore, sempre predeterminata, da 8 a 32 bit. Per ottenere effetti di grande impatto, è

consigliabile utilizzare formati come il Portable Network Graphics (*.png) , oppure il

JPEG (*.jpg) se si vuole risparmiare spazio pur conservando una discreta qualita'; il

formato ideale è 32x32 pixel per le icone grandi e 22x22 o 16x16 in quelle piccole

come nei menù a discesa o nelle ListView a dettagli. Ogni controllo con interfaccia che

sia associato al controllo ImageList , dispone di una proprietà ImageList, che deve

essere impostata di conseguenza a seconda della lista di immagini che si vuole quel

controllo possa utilizzare. Successivamente, i singoli elementi al suo interno sono

dotati delle proprietà ImageIndex e ImageKey, che permettono di associarvi

un'immagine prelevandola mediante l'indice o la chiave impostata.

Il controllo ImageList

Corso di Programmazione Cefi Informatica

ImageList su ListView

Page 18: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

18

Corso di Programmazione Cefi Informatica

ImageList su TreeView

Corso di Programmazione Cefi Informatica

ImageList su TabControl

Page 19: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

19

Corso di Programmazione Cefi Informatica

La ListView è un controllo complesso e di grande impatto visivo. È lo stesso tipo di

lista usato dall'explorer di windows per visualizzare files e cartelle. Le sue proprietà

permettono di personalizzarne la visualizzazione in cinque stili diversi: i più importanti

di questi sono Large Icone (Icone grandi), Small Icon (Icone piccole) e Details

(Dettagli). Ci sono poi anche Tile e List, ma vengono usati meno spesso. Ecco alcuni

esempi:

Il controllo ListView

Corso di Programmazione Cefi Informatica

ListView Large IconListView Large Icon

Page 20: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

20

Corso di Programmazione Cefi Informatica

ListView Small Icon

Corso di Programmazione Cefi Informatica

ListView Details

Page 21: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

21

Corso di Programmazione Cefi Informatica

� CheckBoxes : indica se la listview debba visualizzare delle CheckBox vicino ad ogni

elemento

� Columns : collezione delle colonne disponibili. Ogni colonna è contraddistinta da un testo

(Text), un indice d'immagine (ImageIndex) e un indice di visualizzazione (DisplayIndex)

che specifica la sua posizione ordinale nella visualizzazione. Le colonne sono visibili sono

con View = Details

� FullRowSelect : indica se evidenziare tutta la riga o solo il primo elemento, quando View

= Details

� GridLines : indica se visualizzare le righe della griglia, quando View = Details

� Groups : collezione dei gruppi disponibili

� HeaderStyle : specifica se le intestazioni delle colonne possano essere cliccate o meno

Il controllo ListView , le proprietà (1/3)

Corso di Programmazione Cefi Informatica

� HideSelection : specifica se la listview debba nascondere la selezione quando

perde il Focus, ossia quando un altro controllo diventa il controllo attivo

� HotTracking : abilita gli elementi ad apparire come collegamenti ipertestuali quando

il mouse ci passa sopra

� HoverSelection : se impostata su True, sarà possibile selezionare un elemento

semplicemente spostandoci sopra con il mouse

� Items : collezione degli elementi della listview

� LabelEdit : specifica se sia possibile modificare il testo dei SubItems da parte

dell'utente, quando View = Details

Il controllo ListView , le proprietà (2/3)

Page 22: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

22

Corso di Programmazione Cefi Informatica

� LargeImageList : ImageList per View = Large Icon / Tile / List

� MultiSelect : indica se si possano selezionare più elementi contemporaneamente

� ShowGroups : determina se visualizzare i gruppi

� ShowItemToolTips : determina se visualizzare i ToolTips dei rispettivi elementi

� SmallIconList : ImageList per View = Small Icon / Details

�Sorting : il tipo di ordinamento, se alfabetico ascendente o discendente.

Il controllo ListView , le proprietà (3/3)

Corso di Programmazione Cefi Informatica

Ogni elemento della ListView è contraddistinto da un oggetto ListViewItem . Poichè la

ListView è compatibile con l'ImageList, tutti i membri della collezione Items sono in

grado di impostare l'indice d'immagine associato, come detto precedentemente.

Inoltre, sempre manipolando le proprietà, si può attribuire ad ogni elemento un testo,

un font, un colore diverso a seconda delle necessità. Nella visualizzazione a dettagli

si possono impostare tutti i valori corrispettivi ad ogni colonna mediante la proprietà

SubItems , la quale contiene una collezione di oggetti ListViewSubItem: di questi è

possibile modificare il font e il colore, oltre che il testo.

ListViewItem

Page 23: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

23

Corso di Programmazione Cefi Informatica

Un gruppo è un insieme di elementi raggruppati sotto la stessa etichetta. I gruppi

vengono aggiunti alla lista utilizzando l'apposita proprietà Groups e ogni elemento può

essere assegnato ad un gruppo con la stessa proprietà (ListViewItem.Group). Oggetti

di questo tipo godono di poche caratteristiche: solo il testo ed il nome sono modificabili.

Prima di procedere con ogni operazione, però, bisogna assicurarsi che la proprietà

ShowGroups della ListView sia impostata a True

Ecco un esempio di codice:

ListViewGroup

Corso di Programmazione Cefi Informatica

'Nuovo gruppoDim G As New ListViewGroup("Testo esplicativo")

'Nuovo elementoDim L As New ListViewItem("Elemento")

'Aggiunge il gruppo alla listviewListView1.Groups.Add(G)

'Setta il gruppo a cui L apparterràL.Group = G

'Aggiunge l'elemento alla listaListView1.Items.Add(L)

Esempio

Page 24: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

24

Corso di Programmazione Cefi Informatica

La ListView a dettagli è la versione più complessa di questo controllo, ed è

contraddistinta dalla classica visualizzazione a colonne. Ogni colonna viene

determinata in fase di sviluppo o a run-time agendo sulla collezione Columns nelle

proprietà della lista e bisogna ricordare l'ordine in cui le colonne vengono inserite

poichè questo influisce in maniera significativa sul comportamento dei SubItems.

Infatti il primo SubItem di un ListViewItem andrà sotto la prima colonna, quella con

indice 0, il secondo sotto la seconda e così via. Un errore di ordine potrebbe produrre

quindi, risultati sgradevoli. Viene visualizzato un esempio per calcolare la spesa totale

conoscendo i singoli prodotti e le singole quantità di una lista della spesa. Ecco

un'anteprima di come dovrebbe apparire la finestra:

La ListView a dettagli

Corso di Programmazione Cefi Informatica

Anteprima esempio

Page 25: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

25

Corso di Programmazione Cefi Informatica

Tutti conoscono benissimo

l'interfaccia di Microsoft Word, dove

sopra lo spazio in cui si scrive ci

sono molte icone, ognuna con la

propria funzione (Salva, Apri,

Nuovo, Copia, Incolla ecc...): la

barra degli strumenti, così

chiamata, dove sono collocate

quelle icone è una ToolStrip . Ecco

osservare un esempio di toolstrip

creata con vb.net:

Il controllo ToolStrip

Corso di Programmazione Cefi Informatica

Le proprietà principali di una toolstrip:

� ImageScalingSize: molto importante, determina di che dimensione saranno le

immagini della toolstrip; per impostarle della dimensione di quelle di Word si lasci pure

16;16 (16x16), mentre per farla apparire con la stessa dimensione di quelle in immagine

un 24;24 è accettabile (consiglierei di non andare troppo oltre)

� Items: l'insieme degli elementi della toolstrip; ciò che si può mettere nella toolstrip è

un piccolo gruppo di controlli normalissimi, già analizzati, ossia: Button (un normale

pulsante: nell'immagine, Testi e Cronologia sono Button); DropDownItems (menù a

discesa, identico a MenuStrip: nell'immagine Documenti è un dropdownitem);

Il controllo ToolStrip

Page 26: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

26

Corso di Programmazione Cefi Informatica

SplitButton (una fusione tra button e dropdownitems, poichè gode di un evento click

pur essendo una lista a discesa); Label (una normalissima etichetta di testo:

nell'immagine Nome è una label); TextBox (casella di testo: nell'immagine il testo

"Nicolo'" contenuto in una textbox); ComboBox (lista a cascata: nell'immagine è il

primo controllo della seconda riga); ProgressBar (ultimo controllo); Separator (un

separatore, ossia una barra verticale che separa gli elementi: nell'immagine è

presente fra Documenti e Nome)

� TextDirection: direzione del testo

Il controllo ToolStrip

Corso di Programmazione Cefi Informatica

TabControl è un controllo formato da più schede sovrapposte, ognuna delle quali

contiene al proprio interno una interfaccia diversa. Questo controllo, infatti, insieme a

GroupBox, SplitPanel e pochi altri, è un contenitore creato appositamente per ordinare

più controlli, in questo caso c'è la possibilità di stipare una enorme quantità di layout in

poco spazio: ogni scheda (Tab) è accessibile con un click e cambia l'interfaccia

visualizzata .

A seconda della proprietà Appearance, TabControl può presentarsi sotto tre vesti

grafiche :Normal , Buttons e FlatButtons. Per inserire uno o più controlli all'interno

di una scheda è sufficiente trascinarli con il mouse oppure aggiungerli da codice

facendo riferimento alla proprietà TabPages. Ecco la lista delle proprietà più

rilevanti:

Il controllo Tabcontrol

Page 27: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

27

Corso di Programmazione Cefi Informatica

� Appearance : lo stile di visualizzazione

� ItemSize : la dimensione dell'intestazione delle schede

� Multiline : se impostato su True, qualora le schede fossero troppe, verranno

visualizzate diverse file di header una sopra all'altra; altrimenti appariranno due

pulsantini a mò di scrollbar che permetteranno di scorrerle orizzontalmente. Nel primo

caso, la proprietà in sola lettura RowCount restituisce il numero di righe visualizzate

� TabPages : collezione di tutte le schede disponibili sotto forma di oggetti TabPage

Per portare in primo piano una scheda è possibile richiamare da codice il metodo

TabControl.SelectTab(Index), passando come unico parametro l'indice della scheda da

rilevare, o, in alternativa, tutto l'oggetto TabPage.

Proprietà del controllo Tabcontrol

Corso di Programmazione Cefi Informatica

Senza alcun dubbio, DataGridView è il controllo per eccellenza nell'immagazzinamento

di dati, in particolar modo quelli estratti dai database, la cui gestione è assai frequente

lavorando con il Visual Basic. L'interfaccia tipica è questa:

Il controllo DataGridView

Page 28: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

28

Corso di Programmazione Cefi Informatica

In ogni casella è possibile inserire anche elementi diversi dal puro e semplice testo: in

particolare, solo in fase di sviluppo si possono scegliere colonne che implementino il

comportamento di chexkbox, combobox, button, picturebox e linklabel. Tuttavia, spesso

le colonne mutano spontaneamente stile per adattarsi al tipo di valore inserito (ad

esempio, inserire un valore booleano provocherà l'apparire di una checkbox). Eccone le

proprietà e i metodi più interessanti:

� AllowUserTo, AddRows, DeleteRows, OrderColumns, ResizeC olumns,

ResizeRows : una serie di proprietà booleane che determinano se l'utente sia o meno in

grado di aggiungere o rimuovere righe, ordinare le colonne o ridimensionare sia le righe

che le colonne

Proprietà del controllo DataGridView (1/5)

Corso di Programmazione Cefi Informatica

� AutoResize ... : una serie di procedure che permettono di ridimensionare una

determinata colonna o riga, o intestazione affinchè si adatti al suo nuovo contenuto

� ClearSelection: deseleziona tutte le celle selezionate

� ColumnCount / RowCount: determina il numero iniziale di colonne o righe

visualizzate sul controllo

� ColumnHeaders / RowHeaders: imposta lo stile di visualizzazione, i bordi, le

dimensioni e la visibilità delle intestazioni

� Columns: insieme di tutte le colonne del controllo. Tramite questa proprietà è

possibile determinare quali siano i tipi di valori che si possono immettere in una cella.

Proprietà del controllo DataGridView (2/5)

Page 29: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

29

Corso di Programmazione Cefi Informatica

Nella finestra di dialogo durante la scrittura del programma, infatti, quando si

aggiunge una colonna non a runtime, viene anche chiesto quale debba essere il suo

tipo, proponendo una gamma abbastanza ampia di possibilità (textbox, combobox,

checkbox, image, button, linklabel). Non possibile stabilire il tipo di colonna da codice

� CurrentCell: imposta o restituisce la cella selezionata

� CurrentCellAddress: restituisce due coordinate sotto forma di Point che indicano

la colonna e la riga della cella selezionata

� Item(x,y): restituisce la cella alle coordinate x e y (colonna e riga). La sua

proprietà più importante è Value, che restituisce o imposta il valore contenuto nella

cella, che può essere un testo, un valore booleano, una combobox eccetera

Proprietà del controllo DataGridView (3/5)

Corso di Programmazione Cefi Informatica

� MultiSelect: determina qualora sia possibile selezionare più celle, colonne o righe

insieme

� ReadOnly : determina se l'utente possa o meno modificare i contenuto delle celle

� SelectionMode : proprietà enumerata che indica come debba avvenire la

selezione. Può assumere 5 valori: CellSelect (solo la cella), FullRowSelect (tutta la

riga), FullColumnSelect (tutta la colonna), RowHeaderSelect (solo l'intestazione

della riga) o ColumnHeaderSelect (solo l'intestazione della colonna)

� ShowCellToolTip : indica se visualizzare il tooltip della cella

� ShowEditingIcon : indice se visualizzare l'icona di modifica

Proprietà del controllo DataGridView (4/5)

Page 30: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

30

Corso di Programmazione Cefi Informatica

�Sort(a, b): utilissima procedura che ordina la colonna a della datagridview secondo

un ordine ascendente o discendente definito da un enumeratore di tipo

ComponentModel.ListSortDirection

� Selected Cells, Columns, Row: tre collezioni che restituiscono un insieme di tutte

le celle, colonne o righe selezionate

Proprietà del controllo DataGridView (5/5)

Corso di Programmazione Cefi Informatica

Il tipo DataTable è la rappresentazione astratta del controllo visuale appena esposto.

Serve per immagazzinare dati, al pari di ArrayList o HashTable, ma la logica è del

tutto diversa. I valori vengono infatti memorizzati all'interno di una tabella, formata da

un certo numero di righe e colonne, modificabili in ogni maniera. Le righe sono

subordinate alle colonne, poichè devono presentare un numero di celle (assimilabili

quindi ai SubItems della ListView Details) pari a quello delle colonne: per questo

motivo il tipo DataRow non presenta alcun costruttore, ma deve essere generato

dalla funzionefactory NewRow() appartenente a DataTable. Ecco un semplice

esempio di codice che riempie una tabella di 1 riga x 2 colonne:

Il DataTable

Page 31: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

31

Corso di Programmazione Cefi Informatica

'Dichiara una nuova DataTableDim t As New DataTable'Dichiara una nuova riga di DataTable'ATTENZIONE! Questa classe NON presenta alcun costruttore perchè non si è a‘conoscienza a priori di quante saranno le colonne!

Dim r As DataRow'Dichiara un nuovo array di DataColumn, ciascuna delle quali contiene il nomedell'intestazione immaginaria della colonna e quindi la sua "key"

Dim c() As DataColumn = {New DataColumn("Nome"), New DataColumn("Cognome")}'Aggiunge le colonne alla tabella. Il metodo AddRange non accetta un singolo elemento bensì un array di elementi

t.Columns.AddRange(C)

Esempio (1/2)

Corso di Programmazione Cefi Informatica

'Inizializza una nuova riga ora che si sa quali e quante sono le colonner = t.NewRow()

'Riempie i campi necessari impostando la proprietà Item e usando come indice la‘stringa che si era impostato come intestazione prima

r.Item("Nome") = "Caio"r.Item("Cognome") = "Sempronio"'Dopo aver completato la riga, la aggiunget.Rows.Add®

Esempio (2/2)

Page 32: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

32

Corso di Programmazione Cefi Informatica

Con il controllo DataGridView e alcuni altri è possibile eseguire un binding dei dati,

ossia legare una determinata fonte di dati all'oggetto in modo tale che visualizzi il

contenuto della fonte. È possibile ottenere gli stessi risultati in modi differenti. Qui

vengono spiegati due: il legame per classe e quello per tabella.

Nel primo si costruisce una classe che esponga tutti i campi che si desidera vengano

riportati nella DataGridView come proprietà pubbliche facendo particolare attenzione

nel sceglierne i nomi, dato che questi verranno utilizzati come intestazioni della

colonna. Dopo aver raccolto gli oggetti necessari in un qualche tipo di collezione (list o

array vanno benissimo), si imposta la proprietà DataSource su questa collezione e,

per magia, il controllo viene popolato con tutti i dati immessi:

Il Binding

Corso di Programmazione Cefi Informatica

Public Class clsUtenteDim _Nome, _Cognome As StringDim _Sposato As Boolean

Public Property Nome() As StringGet

Return _NomeEnd GetSet(ByVal value As String)

_ Nome = valueEnd Set

End PropertyPublic Property Cognome() As String

GetReturn _Cognome

End Get

Esempio (1/3)

Page 33: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

33

Corso di Programmazione Cefi Informatica

Set(ByVal value As String)_Cognome = value

End SetEnd PropertyEnd Class'...Dim arr(1) As clsUtentearr(0) = New clsUtenteWith arr(0).Cognome = "Sempronio".Nome = "Tizio"

. Sposato = TrueEnd Witharr(1) = New clsUtente

Esempio (2/3)

Corso di Programmazione Cefi Informatica

With arr(1)

. Cognome = "Pallino"

.Nome = "Pinco"

.Sposato = False

End With

D.DataSource = arr

'Ridimensiona le colonne così che il testo delle celle si possa leggere interamente

D.AutoResizeColumns()

Con DataTable, il meccanismo è lo stesso, ma è più semplice disporre i valori,

poichè DataTable lavora in modo parallelo a DataGridView

Esempio (3/3)

Page 34: I CONTROLLI IN VB - CEFI telematico/Dispense/progreg/dispense44.pdf · I CONTROLLI IN VB.NET VB.NET Corso di Programmazione Cefi Informatica ... Flat o Popup (la combobox è grigia

34

Corso di Programmazione Cefi Informatica

Esiste un’altra proprietà del controllo DataGridView, DataMember . Può accadere,

infatti, che il programma utilizzi dei DataSet (che sono comunque i casi più frequenti).

Tali tipi di oggetti sono in grado di raggruppare al proprio interno anche più DataTable,

accessibili tramite la proprietà Tables : se DataSource viene impostata su un DataSet,

il programma non saprebbe quale tabella prelevare tra tutte quelle disponibili. A

questo punto entra in scena DataMember, che viene impostato sul riferimento della

tabella scelta. Ad esempio:

Dim D As DataSet'...'La fonte di dati è il DataSetgrid.DataSource = D‘Ma vengono visualizzati solo quelli provenienti dalla sec onda tabella disponibilegrid.DataMember = D.Tables(1)

La proprietà DataMember