La creazione di un progetto da zero in Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Lavorare con le date (prima parte)
Eccoci ad un'altro appuntamento coi controlli di Visual Basic. Questo mini corso strutturato in due parti tratterà il lavoro con le date attraverso gli unici due strumenti che Visual Basic mette a disposizione ai suoi utenti: il controllo MonthView e DTPicker.
Fig.1 Il controllo MonthView permette all'utente di selezionare una data visivamente invece di dover immettere una data tramite tastiera.
E' il mese di dicembre: le edicole sono piene di calendari di modelle chi più chi meno svestite. Anche noi di Visual Basic Italia abbiamo voluto contribuire con questa lezione sui calendari di Visual Basic, sperando di poter essere all'altezza delle concorrenti. Cominciamo col dire che entrambi i controlli sono stati aggiunti a Visual Basic 6.0 al secondo gruppo dei Windows Common Controls (Microsoft Windows Common Controls-2 6.0). Ciò significa che per poterne usufruire li dovremo prima importare nel nostro progetto dalla lista dei componenti che abbiamo a disposizione per default.
Nota: attenzione a non confondere il controllo MonthView col controllo Microsoft Calendar Control x.0.
Oggi parleremo esclusivamente del controllo MonthView.
Il controllo MonthView non è altro che un calendario che permette all'utente di selezionare visivamente delle date. Questo evita all'utente dell'applicazione che conterrà questo controllo, il noioso inserimento manuale di giorno, mese e anno, se e dove richiesti. Nella figura 1 viene mostrata la MonthView così come appare di default. Naturalmente, come spesso accade per i controlli di Visual Basic, è possibile modificarne l'aspetto e le funzionalità a proprio piacimento, sfruttandone così appieno le potenzialità. Alcune delle proprietà supportate da MonthView sono elencate nella tabella sottostante. Naturalmente di proprietà il controllo MonthView ne ha a dismisura. Non le vedremo tutte in quanto ci occorrerebbe il doppio del tempo ed anche e soprattutto perchè sono particolarmente intuitive:

ShowToday il cui valore di default, ossia quello preimpostato nel momento in cui andiamo ad aggiungere il controllo alla form, è settato su True, fa apparire o scomparire una linea di testo alla base del controllo per indicare la data corrente. In figura 1 la proprietà ShowToday è =True ed infatti il controllo indica che oggi è (o dovrebbe essere) il 20/12/00.
ShowWeekNumbers Imposta a sinistra e in alto rispetto al controllo il riferimento che visualizza il giorno. Il valore di default di questa proprietà è False.
DayBold() Controlla se la data specificata è visualizzata o meno in grassetto. Per default inizialmente questo non accade. Questa proprietà è particolarmente utile nel caso si voglia indicare un giorno speciale sul calendario (ad esempio un periodo di vacanza o una domenica...). In tal caso bisognerà specificare la data in questo modo:

MonthView1.DayBold(#29/12/2000#) = True

dove tra # e # abbiamo la data da visualizzare in grassetto. In questo caso: 29/12/2000.
ForeColor
Indica il colore del giorno del mese e la linea orizzontale tra le etichette delle settimane
TrailingForeColor
Indica il colore dei giorni che sono fuori dal mese correntemente visualizzato ma ancora visibili.
MonthBackColor
Indica il colore dell'area di sofondo dietro ai giorni del mese.
TitleBackColor
Indica il colore dell'area dietro al nome del mese che dà il titolo alla finestra MonthView.
TitleForeColor
Indica il colore del nome del mese che dà il titolo alla finestra MonthView.
MaxSelCount
Indica il numero di date massimo che può essere selezionato contemporaneamente dall'utente.
MinDate/MaxDate
Indicano rispettivamente la data d'inizio del calendario e quella finale oltre le quali non è possibile uno scorrimento del datario.

Se si volesse visualizzare più mesi alla volta, utilizzando lo stesso unico controllo MonthView, si possono impostare ulteriori due proprietà, ossia MonthRows e MonthCols.
Fig.2 Il controllo MonthView può agevolmente scomporsi in più datari formando con essi una vera e propria griglia, fino al numero massimo di 12.
Ad esempio la figura 2 mostra com' è possibile creare una griglia di datari impostando le due proprietà suddette al valore 2 (MonthRows=2 e MonthCols=2). Che cosa accade? Niente di particolarmente eccitante per essere sinceri. Semplicemente si avrà un effetto simile a quello prodotto da quattro controlli MonthView affiancati a due a due sulla stessa form. Ed il limite a questa operazione sta nel fatto che non è possibile settare le proprietà MonthRows=2 e MonthCols=2 ad un valore superiore a 12 (e a dirla tutta pochi utenti saranno felici di vedersi lo schermo riempito da una ventina di calendari).
Fin qui s'è visto come mutare l'aspetto del controllo. La veste grafica non è però tutto in un progetto: per fare qualcosa di utile con MonthView sarà necessario andare un po' oltre e dare un'occhiata al codice che si accompagna al controllo. Per impostare la data corrente infatti si dovrà utilizzare la proprietà Value. Esistono vari modi per utilizzare Value:

MonthView1.Value = #12/3/2000#
MonthView1.Value = "7/19/75"
MonthView1.Value = Now

Ma come far interagire utente e controllo? La cosa è molto semplice: mettiamo il nostro utente di fronte ad un controllo MonthView. Vogliamo far apparire una finestra di messaggio che indichi quale giorno, mese e anno, l'utente ha premuto sul datario. L'evento che genererà questa finestra sarà naturalmente MonthView1_DateClick:

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
MsgBox "Hai selezionato il giorno " & MonthView1.Day _
& " del mese " & MonthView1.Month _
& " dell'anno " & MonthView1.Year
End Sub

Una seconda possibilità è quella di far apparire in grassetto tutte le date sulle quali si clicca col mouse. Anche in questo caso l'evento cardine è MonthView1_DateClick:

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
MonthView1.DayBold(DateClicked) = True
End Sub

che in poche parole equivale a dire '...prendi la data sulla quale si è cliccato (DateClicked) e restituiscila in grassetto (DayBold)'.
Per il resto il controllo MonthView è realmente semplice. Lasciamo dunque a chi è interessato il piacere di scoprire che cosa si può fare con tale controllo. L'appuntamento rimane comunque per la prossima lezione, nella quale si parlerà del controllo DTPicker.

Alla prossima, allora.

Archivio:
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