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
Controllo TextBox
mercoledì 23 gennaio 2008 - 17.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
walter.tomiati.90
Profilo
| Junior Member
121
messaggi | Data Invio:
mer 23 gen 2008 - 17:38
Salve,
devo obbligare all'utente di inserire dentro una textbox (in visual basic 2005) solo numeri e la ",". E possibile ?
Tomiati Walter
---> Gabba, Gabba, Hey !!! <---
chico_
Profilo
| Newbie
9
messaggi | Data Invio:
mer 23 gen 2008 - 22:02
Come impostazione dalle proprietà della TextBox non credo proprio.
L'alternativa è crearsi una routine che all'evento TextChanged della TextBox verifichi cosa sia stato inserito, e cancellare l'ultima digitazione se non rientra nei caratteri previsti. Ma il tutto si complica se vuoi tenere presente l'eventualità del copia-incolla da parte dell'utonto (che per vedere se il tuo codice lo prevede, seleziona un testo dal notepad, lo copia, e cerca di incollarlo nella tua text).
Secondo me meglio un Validating al lost focus della TextBox. Dopo 'n' messaggi di avvertimento l'utonto si stanca di fare prove idiote.
Ciauz
CHico
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mer 23 gen 2008 - 22:33
Se agisci nel textchanged, non dovrebbe esserci problema col copiaincolla, anche se fatto col mouse. Se i caratteri non sono quelli voluti, usi lo Undo.
chico_
Profilo
| Newbie
9
messaggi | Data Invio:
gio 24 gen 2008 - 09:06
Scusa, Alextyx, ma
(MSDN : Metodo TextBoxBase.Undo)
"Nota : Il metodo Undo non funziona con gli eventi KeyPress e TextChanged."
o ho interpretato male io ?
Ciauz
CHico
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
gio 24 gen 2008 - 11:43
E chi sono io per contraddire MSDN!
Se poi, tanto per scrupolo, giusto per passare il tempo, vuoi provare un codice come questo.....
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Me.TextBox1.Text = "" Then
Me.TextBox1.ClearUndo()
Exit Sub
End If
If Not IsNumeric(Me.TextBox1.Text) Then
Me.TextBox1.Undo()
End If
Me.TextBox1.ClearUndo()
End Sub
Dovrebbe garantirti una textbox di soli numeri, o operatori relativi ad un tipo numerico (-.,+ ecc...). MSDN permettendo, naturalmente!
Spero non ci siano bugs, ma quello che conta è stabilire se Undo funziona, poi ognuno si raffinerà i criteri a seconda delle proprie esigenze.
A proposito...ma sei tu o non sei tu? Cerrrrto che sei tu, vero?
Anche se hai un altro avatar!
chico_
Profilo
| Newbie
9
messaggi | Data Invio:
gio 24 gen 2008 - 17:21
Mai fidarsi di MSDN
....
PRIMA chiedere a Alextyx e/o consultare il blog di Cteniza.....POI consultare MSDN
(ero convinto che MSDN avesse ragione anche perchè nel codice di prova non avevo messo il ClearUndo, quindi giustamente andava in Loop... poi visto che MSDN diceva che non era possibile, non ci avevo sbattuto il cranio piu' di tanto).
Grazie della correzione , Alextyx.
Mi scuso anche con Walter per aver dato una risposta imprecisa.
Ciauz
Chico
p.s.: si, sono sempre io
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
gio 24 gen 2008 - 22:05
Eddai Chico, non esagerare. Ce ne fossero di utenti come te!
Anch'io, se avessi letto quello che riporti tu, prima di aver usato lo 'undo', sarei giunto alle stesse conclusioni e lo avrei evitato.
Solo che ci ho già basato un controllo personalizzato, quindi....
Chissà cosa vogliono dire su MSDN? Boh.....
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 !