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 - IsNumeric oppure no?
Forum - C# / VB.NET - IsNumeric oppure no?

Avatar
psycho85 (Ex-Member)
Pro


Messaggi: 72
Iscritto: 20/08/2006

Segnala al moderatore
Postato alle 18:15
Venerdì, 26/12/2008
Ciao,

avrei bisogno di limitare la scrittura dei soli numeri e della virgola in una textbox.

ora utilizzo la seguente funzione:

If Not IsNumeric(txtImporto.Text) Then
   txtImporto.Text = ""
Else
'
end if

Questo funziona, SOLAMENTE CHE SE SI DIGITA PER SBAGLIO UNA LETTERA IL CONTENUTO DELLA text box si cancella, avvenimento molto fastidioso.

Vorrei semplicemente che i caratteri non ammessi non vengano visualizzati senza nessun azzeramento della text box e senza nessun messaggio di errore.

Come fò? :ot:

Ultima modifica effettuata da psycho85 il 26/12/2008 alle 18:16
PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 9:57
Sabato, 27/12/2008
ti ho scritto una sub:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub filtra(ByVal Txt As TextBox) 'Sub filtra.
  2.         For x As Int16 = 1 To Txt.Text.Length 'Ripete l'operazione all'interno del ciclo per ogni carattere della textbox:
  3.             If Not IsNumeric(Mid(Txt.Text, x, 1)) And Not Mid(Txt.Text, x, 1) = "," Then 'se il carattere non è numerico e non è una virgola
  4.                 Txt.Text = Replace(Txt.Text, Mid(Txt.Text, x, 1), "") 'lo elimina
  5.                 Txt.SelectionStart = Txt.Text.Length 'e poi rimette il puntatore (la linea che lampeggia da dove si inizia a scrivere) alla fine del testo
  6.             End If
  7.         Next
  8.     End Sub


Leggi i commenti per capire cosa fa di preciso

PS: Per richiamare la Sub in una parte del codice basta che scrivi
Codice sorgente - presumibilmente Plain Text

  1. filtra(nomedellatextbox)


ad esempio se la tua textbox si chiama txtImporto basta fare:
Codice sorgente - presumibilmente Plain Text

  1. filtra(txtImporto)



se hai problemi dillo :k:

PM Quote
Avatar
psycho85 (Ex-Member)
Pro


Messaggi: 72
Iscritto: 20/08/2006

Segnala al moderatore
Postato alle 11:01
Sabato, 27/12/2008
OK!!!

Grazie mille funziona perfettamente!

    
Codice sorgente - presumibilmente VB.NET

  1. Private Sub filtra(ByVal txtImporto As TextBox) 'Sub filtra.
  2.  
  3.         For x As Int16 = 1 To txtImporto.Text.Length 'Ripete l'operazione all'interno del ciclo per ogni carattere della textbox:
  4.             If Not IsNumeric(Mid(txtImporto.Text, x, 1)) And Not Mid(txtImporto.Text, x, 1) = "," Then 'se il carattere non è numerico e non è una virgola
  5.                 txtImporto.Text = Replace(txtImporto.Text, Mid(txtImporto.Text, x, 1), "") 'lo elimina
  6.                 txtImporto.SelectionStart = txtImporto.Text.Length 'e poi rimette il puntatore (la linea che lampeggia da dove si inizia a scrivere) alla fine del testo
  7.             End If
  8.         Next
  9.         Call Conversione()'richiama la funzione
  10.     End Sub



GRAZIEEEEEEEEEEE

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 16:44
Sabato, 27/12/2008
figurati ;)

PM Quote