Maskedtextbox e numeri con virgola

giovedì 10 gennaio 2008 - 19.33

bluland Profilo | Guru

Salve,

uso il controllo in oggetto per l'inserimento di alcuni prezzi, l'ho formattato in questo modo

99999.99 (7 numeri)

in modo da poter inserire numeri con virgola,
ho fatto delle prove di inserimento ed il problema sorge se inserisco i numeri in modo casuale

ad esempio se volessi inserire 150,55 e lo inserisco nel text come 1 5 0,55 ho problemi, avevo pensato di adoperare l'evento leave del controllo e su questo evento di reinserire il valore però in modo giusto:

quindi

inserisco 1 5 0,55 dopo il leave nel textbox avrò 150,55
ho fatto varie prove con i metodi per le stringhe ad esempio:
Replace(" ", "") però quando lo inserisco nel text se non ho scritto esattamente 7 numeri mi sposta la virgola,
invece di 150,55 avrò 15055,
ora prima di continuare su questa strada mi chiedevo esiste un altro metodo??

Saluti


saluti

--------------------
Vincenzo PESANTE
System Engineer

dedalo.nel.labirinto Profilo | Newbie


ciao,

potresti provare a disabilitare la digitazione di
spazi dentro la tua textbox.

bluland Profilo | Guru

>
>ciao,
>
>potresti provare a disabilitare la digitazione di
>spazi dentro la tua textbox.

in che modo?
--------------------
Vincenzo PESANTE
System Engineer

dedalo.nel.labirinto Profilo | Newbie



ciao,

puoi provare intercettando l'evento KeyPress del controllo e verificare
il valore di KeyChar. Se questo cosrrisponde a uno spazio vuoto lo annulli.

poni che il controlli si chiami maskedtxt:


private void maskedtxt_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 32)
e.KeyChar = char.MinValue;
}

bluland Profilo | Guru

Ciao,

si avevo pensato di intercettare l'evento Keypress,

alla fine ho risolto aggiungendo un secondo textbox per i decimali,
era piu per un effetto visivo, magari nella prossima rel.

Grazie cmq

saluti
--------------------
Vincenzo PESANTE
System Engineer

alextyx Profilo | Expert

Quando verrà l'occasione, ti consiglio di evitare l'evento keypress. Se inserisci, ad esempio, "1 5" con un copia incolla del mouse, l'evento keypress non viene scatenato ed il controllo non viene effettuato. Io normalmente faccio dei controlli nell'evento textchanged e se la stringa contiene caratteri non permessi, effettuo lo 'Undo'.

bluland Profilo | Guru

Si infatti avevo notato questa cosa per questo sono andato avanti mettendo 2 txtbox.

Ti rigrazio

Ciao
--------------------
Vincenzo PESANTE
System Engineer
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5