Oppure

Loading
26/12/08 17:15
psycho85
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 26/12/08 17:16
aaa
27/12/08 8:57
ruggy94
ti ho scritto una sub:
Private Sub filtra(ByVal Txt As TextBox) 'Sub filtra.
        For x As Int16 = 1 To Txt.Text.Length 'Ripete l'operazione all'interno del ciclo per ogni carattere della textbox:
            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
                Txt.Text = Replace(Txt.Text, Mid(Txt.Text, x, 1), "") 'lo elimina
                Txt.SelectionStart = Txt.Text.Length 'e poi rimette il puntatore (la linea che lampeggia da dove si inizia a scrivere) alla fine del testo
            End If
        Next
    End Sub

Leggi i commenti per capire cosa fa di preciso

PS: Per richiamare la Sub in una parte del codice basta che scrivi
filtra(nomedellatextbox)

ad esempio se la tua textbox si chiama txtImporto basta fare:
filtra(txtImporto)


se hai problemi dillo :k:
aaa
27/12/08 10:01
psycho85
OK!!!

Grazie mille funziona perfettamente!

Private Sub filtra(ByVal txtImporto As TextBox) 'Sub filtra.

        For x As Int16 = 1 To txtImporto.Text.Length 'Ripete l'operazione all'interno del ciclo per ogni carattere della textbox:
            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
                txtImporto.Text = Replace(txtImporto.Text, Mid(txtImporto.Text, x, 1), "") 'lo elimina
                txtImporto.SelectionStart = txtImporto.Text.Length 'e poi rimette il puntatore (la linea che lampeggia da dove si inizia a scrivere) alla fine del testo
            End If
        Next
        Call Conversione()'richiama la funzione
    End Sub


GRAZIEEEEEEEEEEE
aaa
27/12/08 15:44
ruggy94
figurati ;)
aaa