Eccomi di nuovo qua, oggi scriverò due piccoli trucchi per il VB.Net, rivolti soprattutto a chi ha scoperto da poco questo linguaggio e cerca una soluzione ad un problema. I problemi di cui scriverò sono: “Come fare ad abilitare un pulsante SOLO quando 1 o più TextBox sono piene (cioè vi si è scritto dentro)” e “Avere l’ora di Windows su un proprio programma come quella nella SysTray (vicino all’orologio)”.
Partiamo con il primo problema.
Nel caso di una sola TextBox è davvero semplice. Settiamo la Proprietà Enabled del nostro pulsante a False; nell’evento TextChanged della TextBox che ci interessa, dobbiamo scrivere questo codice:
Codice:
If TextBox1.TexLength <> 0 Then
Button1.Enabled = True
Else
Button2.Enabled = False
End If
Invece, mettiamo il caso di 2 TextBox. Il codice è sostanzialmente lo stesso, ma si aggiunge un And che impone che tutte e 2 le TextBox devono essere piene. Il codice dovrà essere scritto nell’evento TextChanged dell’ultima TextBox. Ad esempio se abbiamo TextBox1 e TextBox2 dovrete scrivere il codice in TextBox2:
Codice:
If TextBox1.TextLength <> 0 And TextBox1.TextLength <> 0 Then
Button1.Enabled = True
Else
Button1.Enabled = False
End If
Davvero semplice 😀
Quindi il trucco (nel caso di più TextBox) sta nello scrivere il codice nell’evento TextChanged dell’ultima TextBox che ci interessa, e in più dobbiamo aggiungere per ogni TextBox che vogliamo: “And TextBoxCheCiInteressa.TextLength <> 0″.
Ovviamente al posto dei nomi TextBox1 e Button1 dovete scrivere il nome dei Vostri controlli.
Perfetto, ora passiamo al secondo problema: l’ora di Windows.
Tutti sapranno che per avere la data e l’ora di Windows bisogna scrivere qualcosa tipo:
Label1.Text = Date.Now.ToString
La proprietà Now mostrerà la data e l’ora in un preciso momento, ad esempio quando clicchiamo su un pulsante (quindi evento Click di un pulsante). Ma il brutto di questa cosa è che l’ora mostrataci rimarrà fissa al momento in cui abbiamo cliccato. Solo un altro click permetterà di aggiornare nuovamente l’ora, che tuttavia dopo il click rimarrà sempre la stessa a meno che non si clicchi un’altra volta e così via.
Per avere invece un orario aggiornato costantemente (quindi vedremo scorrere i secondi ecc.) bisogna agire in maniera diversa. Innanzitutto selezioniamo un controllo Timer e trasciniamolo sul Form. Nell’evento Load del nostro Form scriviamo:
Timer1.Enabled = True ‘Abilita il timer
Timer1.Interval = 1000 ‘Setta l’intervallo del timer a 1 secondo (1000 millisecondi)
Ok, ora nell’evento Tick del timer dobbiamo scrivere invece:
Label1.Text = TimeOfDay ‘Imposta l’ora nel testo della Label1
Ovviamente Label1 è un controllo usato per l’esempio, volendo possiamo scriverlo anche in una TextBox.
Spero che questa micro-guida possa essere utile a chi sta cercando una soluzione in merito ai problemi proposti.
Ciao!