Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Formattazione casella di testo!
venerdì 25 luglio 2008 - 10.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dosa85
Profilo
| Junior Member
51
messaggi | Data Invio:
ven 25 lug 2008 - 10:17
Ragazzi una domanda:
Se per esempio voglio che in una textbox vengano messi valori solo numerici, oppure una data in formato GG/MM/AAAA cosa devo fare?
Naturalmente con relativo errore in caso di immissione di caratteri non consentiti!!!
gabriel81
Profilo
| Junior Member
194
messaggi | Data Invio:
ven 25 lug 2008 - 10:28
Non so se esiste un metodo già incluso nel framework, però so che esiste l'evento onkeydown
if e.keycode.tostring=qualcosa che non mi piace Then
Msgbox("Attento a cosa scrivi!")
non so se ti può andare...
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
ven 25 lug 2008 - 10:37
Usa il controllo MaskedTextBox
Luigi Di Biasi
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
ven 25 lug 2008 - 12:56
Ciao dosa85,
Prima di tutto una domanda:
Vuoi un controllo unico sia per "numericBox" che per "dataBox" oppure due separati?
Mi rispondo da solo: 2 separati
in uno inserisco solo numeri nell'altro le date!
Ok
Per le date allora come a detto luigidibiasi userei la MTB (MountanByke).
Per quanto riguarda la "numericBox" abbiamo una vasta scelta di soluzioni:
La prima e la più completa ti costrusci (esiste già: --
http://www.dreamincode.net/forums/showtopic48794.htm
--) una classe dove, detto in parole povere, disbiliti la tastiera per tutto ciò che non è numerico!
In questo caso non c'è bisogno di nessun controllo perchè non hai la possibilità di inserire lettere e simboli o spazi.
Nell'altro caso puoi fare in modo che nell'evento LostFocus controlli il contenuto della TextBox ed in caso non vi sia un numero ti appare il messaggio di errore:
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus
If Text.Length > 0 Then
If IsNumeric(Text) Then
Dim txtNum As Double = Text
Text = String.Format("{0:N" & DecimalPlaces & "}", txtNum) 'Qui gli dai anche una formattazzione
Else
MsgBox("Il valore inserito non è corretto", MsgBoxStyle.Critical, Application.ProductName)
Me.Focus()
Me.SelectAll() ' Qui fai in modo che se non è un numero non lasci mai il Focus
End If
End If
End Sub
Infine cerca su Internet NumericTextBox oppure NumericBox e qualcosa di specifico che fà al caso tuo lo trovi
Tipo questa:
http://blogs.dotnethell.it/sandro/Convertire-una-TextBox-in-una-TextBox-Numerica__12984.aspx
Considerazione finale:
Se nella tua applicazione devi inserire solo una casella in cui inserisci i numeri allora va bene il controllo sull'evento LostFocus, ma se hai 20 0 30 caselle da controlllare allora vale la pena di farsi una classe.
Ciao ciao
DomA
Profilo
| Expert
537
messaggi | Data Invio:
ven 25 lug 2008 - 16:04
ciao dosa,
nei controlli di vb 2005 c'è una particolare textbox che si chiama >MaskedTextBox< che serve appunto per l'inserimento di particolari dati come numeri e/o date. Per impostare il tipo di dati che vuoi gestire col suddetto controllo non devi far altro che selezionare la voce Mask, dall'elenco delle proprietà, e selezionare il tipo di input che ti serve.
Se, invece, vuoi controllare che l'input inserito in una normale textbox sia numerico puoi fare così:
dim Contr as Boolean = Isnumeric(me.txtimporto.text)
if Contr=true then
Importo = csng(me.txtimporto.text)
else
msgbox("Controllare il campo importo ed assicurarsi di aver inserito un numero.",...)
end if
Io ti consiglierei di inserire il codice nell'evento Lostfocus della tua txt
p.s. puoi usare una ruotin del genere anche per assicurarti che non vengano inseriti, distrattamente, import negativi.
Nella nostra epoca il più grande dilemma è la scelta...
Domenico Mancina
dosa85
Profilo
| Junior Member
51
messaggi | Data Invio:
ven 25 lug 2008 - 18:49
Grazie ragazzi!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !