Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - textbox conversione da punto a virgola
Forum - C# / VB.NET - textbox conversione da punto a virgola

Avatar
thebonni90 (Normal User)
Rookie


Messaggi: 22
Iscritto: 01/01/2011

Segnala al moderatore
Postato alle 21:09
Mercoledì, 16/03/2011
Questo topic è stato chiuso dal moderatore

salve ragazzi adesso sono propio in un vicolo cieco
ho cercato ma non ho trovato niente

ho una textbox dove l'utente inserisce dei numeri di tipo double
fatto tutto e funzionante
uso la conversione con il double.parse e ok
però l'applicazione funziona solo quando l'utente usa la virgola esempio

1,5885 ok

1.5885  non funziona

come posso trasfiormare il punto in una virgola in modo automatico ??? grazie di tutto

PM
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 10:09
Giovedì, 17/03/2011
allora lavora con la funzione "IsNumeric". Dovrebbe fare al caso tuo ;)

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 21:14
Mercoledì, 16/03/2011

double d = double.Parse(txtBox.Text.Replace('.',','));

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 11:52
Giovedì, 17/03/2011
IsNumeric è una funzione di VB6. In .NET non esiste ufficialmente se non nel namespace Microsoft.VisualBasic: comunque l'uso è sconsigliato.

Altre possibili soluzioni sono:
1) Gestire l'evento KeyDown della textbox. Se e.KeyChar non è una cifra o non è un punto, allora imposta e.Handled a True e e.SuppressKeyPress a True. In questo modo evita che la lettera sia registrata nella textbox.
2) Usare una MaskedTextBox:
http://msdn.microsoft.com/it-it/library/system.windows.for ...
3) Usare le espressioni regolari (class Regex) per validare il testo.

PM
Avatar
thebonni90 (Normal User)
Rookie


Messaggi: 22
Iscritto: 01/01/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 21:45
Mercoledì, 16/03/2011
mi da errore
RISFIN1 = Double.Parse(TextBox28.Text.Replace('.',','));

mi dice che manca espressione

poi come posso limitare i caratteri immessi ho trovato un altra discussione ma non è molto semplice la soluzione

PM
Avatar
thebonni90 (Normal User)
Rookie


Messaggi: 22
Iscritto: 01/01/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 21:50
Mercoledì, 16/03/2011
risolto  
RISFIN1 = Double.Parse(TextBox28.Text.Replace(".", ","))   :rotfl::rotfl::rotfl::rotfl:

adesso volevo limitare i numeri che posso immettere ... pensavo a un if però volveo che nel caso immettesse una lettera la eliminasse automaticamente
pensavo con il codice ascii

PM
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 22:29
Mercoledì, 16/03/2011
limitare i numeri in che senso?? limitare il numero massimo di caratteri?? se si allora c'è una proprietà apposita della textbox che si chiama MaxLength ;)
altrimenti se vuoi che si immettano solo numeri puoi provare con la funzione "IsNumeric" che valuta se l'espressione può essere considerata un numero e restituisce True o False

Ultima modifica effettuata da noitide il 16/03/2011 alle 22:42
PM
Avatar
thebonni90 (Normal User)
Rookie


Messaggi: 22
Iscritto: 01/01/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 8:29
Giovedì, 17/03/2011
volevo che l'utente potesse solo inserire
1 2 3 4 5 6 7 8 9 0    .  
se inserisce caratteri non vengono visualizzati

PM
Avatar
formyvale (Normal User)
Rookie


Messaggi: 28
Iscritto: 19/11/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 13:06
Sabato, 23/04/2011
mmm...

metti un timer e lo avvi del form1_load
e nel timer ci scrivi questo.

textbox1.text=textbox1.text.replace(",",".")

PM