🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: free.it.visual-basic
Article #2409

Re: Vincolare le Textbox

#2409
From: Risberg
Date: Fri, 20 Jun 2003 23:12
110 lines
4604 bytes
Pino wrote:

> Ho un piccolo problema, vorrei vincolare alcune caselle di testo(textbox) ad
> accettare:
> 
> 1) solo numeri
> 
> 2) solo lettere (a b c ecc.)
> 
> 3) un numero minimo di caretteri
> 
> 4) che possa accettare solo dei numeri stabiliti da me
> 
> C'� qualcuno che mi dire como posso scrivere il codice per ottenere questi
> risultati?
> 
>   Ringrazio anticipatamente a quelli che mi risponderanno          Pino
> 
> 


Potresti provare a dare un occhiata a questo codice:
Per provarlo:
1) Crea un nuovo progetto
2) Aggiungi un form chiamandolo Form1
3) Aggiungi una textbox chiamandola Text1
4) Aggiungi una textbox chiamandola Text2
5) Incolla questo codice sul form prima creato


'--- INIZIO CODICE ---
Private Const MIN_STRING_LEN As Integer = 5
Private invalidChars() As String * 1 ' Deve contenere almeno un valore!!!
Private validChars() As String * 1 ' Deve contenere almeno un valore!!!

Private Sub Form_Load()
     ReDim invalidChars(2)
     invalidChars(0) = "0"
     invalidChars(1) = "1"
     invalidChars(2) = "2"

     ReDim validChars(3)
     validChars(0) = "9"
     validChars(1) = "6"
     validChars(2) = "7"
     validChars(3) = "4"
End Sub


Private Sub Text1_Validate(Cancel As Boolean)
     ' Controlla che il testo immesso sia maggiore del minimo
     ' impostato nella costante MIN_STRING_LEN
     If Len(Me.Text1.Text) < MIN_STRING_LEN Then
         Call MsgBox("Il numero dei caratteri immessi deve essere 
maggiore di " & CStr(MIN_STRING_LEN))
         Cancel = True
     End If
End Sub


Private Sub Text1_Change()
     ' Controlla che l'ultimo carattere immesso sia numerico
     ' se non lo � elimina l'ultimo carattere e reimposta il cursore
     ' sull'ultimo elemento.
     If Not IsNumeric(Right(Me.Text1.Text, 1)) Then
         If Me.Text1.Text <> "" Then
             Me.Text1.Text = Left(Me.Text1.Text, Len(Me.Text1.Text) - 1)
             Me.Text1.SelStart = Len(Me.Text1.Text)
         Else
             Me.Text1.Text = ""
         End If
     End If

     ' Controlla che nella textbox non vengano immessi caratteri
     ' (o cife) non validi (La lista di questi caratteri sar� contenuta
     ' nell'array monodimensionale invalidChars
     For i = 0 To UBound(invalidChars)
         If Right(Me.Text1.Text, 1) = invalidChars(i) Then
             If Me.Text1.Text <> "" Then
                 Me.Text1.Text = Left(Me.Text1.Text, Len(Me.Text1.Text) - 1)
                 Me.Text1.SelStart = Len(Me.Text1.Text)
             Else
                 Me.Text1.Text = ""
             End If
         End If
     Next i

End Sub


Private Sub Text2_Change()
     ' Controlla che nella textbox vengano immessi solo i caratteri
     ' (o cife) non validi (La lista di questi caratteri sar� contenuta
     ' nell'array monodimensionale invalidChars
     Dim fieldIsCorrect As Boolean: fieldIsCorrect = False
     For i = 0 To UBound(validChars)
         If Right(Me.Text2.Text, 1) = validChars(i) Then
             fieldIsCorrect = True
         End If
     Next i
     If Not fieldIsCorrect Then
         If Me.Text2.Text <> "" Then
             Me.Text2.Text = Left(Me.Text2.Text, Len(Me.Text2.Text) - 1)
             Me.Text2.SelStart = Len(Me.Text2.Text)
         Else
             Me.Text2.Text = ""
         End If
     End If
End Sub
'--- FINE CODICE ---
Technical Details
Message-ID: <oxMIa.119964$pR3.2653511@news1.tin.it>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!pd2nf1so.cg.shawcable.net!residential.shaw.ca!in.100proofnews.com!in.100proofnews.com!nntp.infostrada.it!news-out.tin.it!news-in.tin.it!news1.tin.it.POSTED!not-for-mail
References: <bcvrpi$cr$1@lacerta.tiscalinet.it>

Show Full Headers
Complete Article Headers
X-Google-Language: ITALIAN,ASCII
X-Google-Thread: f94ee,3b6cec33c9e0e27c
X-Google-Attributes: gidf94ee,public
X-Google-ArrivalTime: 2003-06-20 16:12:21 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!pd2nf1so.cg.shawcable.net!residential.shaw.ca!in.100proofnews.com!in.100proofnews.com!nntp.infostrada.it!news-out.tin.it!news-in.tin.it!news1.tin.it.POSTED!not-for-mail
From: Risberg <risberg@email.it>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030529
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: free.it.visual-basic
Subject: Re: Vincolare le Textbox
References: <bcvrpi$cr$1@lacerta.tiscalinet.it>
In-Reply-To: <bcvrpi$cr$1@lacerta.tiscalinet.it>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 111
Message-ID: <oxMIa.119964$pR3.2653511@news1.tin.it>
Date: Fri, 20 Jun 2003 23:12:20 GMT
NNTP-Posting-Host: 80.182.253.99
X-Complaints-To: newsmaster@tin.it
X-Trace: news1.tin.it 1056150740 80.182.253.99 (Sat, 21 Jun 2003 01:12:20 MET DST)
NNTP-Posting-Date: Sat, 21 Jun 2003 01:12:20 MET DST
Organization: TIN