Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    HELP! Validare una TextBox

    Esiste un modo per far sì che in una textbox possano essere inseriti solo valori numerici o alfabetici o alfanumerici?
    Devo per forza usare l'evento keypress? non c'è altro modo?

    Oppure usando il controllo maskedit, ma non riesco a configurarlo in modo che accetti N valori e non solo il numero di "???" che metto.

    HELP!

    PS uso VB.NET

  2. #2
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Lo puoi fare senza tanto codice con i Validator.

    Visita questo link, troverai esempi e spiegazioni su come utilizzarli.

    http://it.gotdotnet.com/quickstart/a...alidation.aspx

  3. #3
    Adesso ci guardo e ti so dire!
    Grazie.

    Ho guardato, ma gli esempi sono per pagine ASP.NET
    Non c'è qualche esempio per programmi in VB.NET normale?

  4. #4
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Beh io in vb uso la funzione IsNumeric per controllare se il testo immesso contiene solo numeri.

    Poi uso le funzioni Mid,Left, Right per recuperare le parti del testo che mi interessano e per controllarle. tipo su un codice fiscale.

    Per consentire solo l'inserimento di N caratteri uso la proprietà MaxLenght della TextBox

  5. #5
    Però come risolvi se devi inserire in una TextBox solo lettere in modo che sia alfabetica??
    Isnumeric la uso già!

  6. #6
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Allora questa è una funzione che mi sono creato io apposta.(VB6)
    Volendo puoi anche intercettare gli errori di imputazione.
    La stringa nonConsentiti contiene i caratteri di cui vuoi impedire la digitazione.Puoi aggiungerne o toglierne a tuo piacimento.


    Ipotizza di avere una textbox in cui devi digitare il nome
    Ha una label Nome e la proprietà name txtNome


    codice:
    Public Function soloLettere(testo, campo As String)
        Dim nonConsentiti, scelta As String
        Dim lungStringa, i, x As Integer
        lungStringa = Len(testo)
        nonConsentiti = "0123456789"
        
        For x = 1 To 10
        scelta = Mid(nonConsentiti, x, 1)
            For i = 1 To lungStringa
                If (InStr(1, scelta, Mid(testo, i, 1))) > 0 Then
                    MsgBox "Errore. Inserire solo lettere nel campo " & campo & ".", vbExclamation, "Attenzione"
                End If
            Next
        Next
    End Function
    Per chiamare la funzione

    Call (txtNome, "Nome")

    Il primo valore è il testo della txtNome, il secondo il nome del campo che vuoi fare uscire nel messaggio di errore.

  7. #7
    E non c'è nessun modo per specificare quali sono i caratteri da poter inserire, anzichè impostare quelli da escludere?
    Scusa se t'assillo!:quipy:

  8. #8
    Utente di HTML.it L'avatar di keko
    Registrato dal
    Jul 2000
    Messaggi
    64
    Beh la funzione InStr cerca una stringa, nel nostro caso un carattere, in un'altra.

    Se lo trova restituisce 1, in caso contrario da 0.

    Basta semplicemente cambiare il confronto per far visualizzare il messaggio di errore.

    Adesso da errore se trova un carattere non consentito.

    Se qui :
    If (InStr(1, scelta, Mid(testo, i, 1))) > 0 Then

    Cambi con:

    If (InStr(1, scelta, Mid(testo, i, 1))) = 0 Then

    Otterrai che se i caratteri inseriti nella textbox non sono quelli indicati da te (nonConsentiti="0123456789", che ovviamente adesso saranno quelli consentiti), ci sarà la segnalazione di errore.

  9. #9
    Provo così!
    Intanto grazie ancora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.