LookText




Private Sub Text1_KeyPress(KeyAscii As Integer)
'questo esempio limita ad un intervallo da ZERO a duecento.

'Se vuoi limitare ad un campo da uno o qualcosa del genere

'stai attento che non permette la stringa vuota nel campo

'di testo perche' Val("") e' minore e da' errore

'se vuoi ovviare a questo annulli il controllo se TmpStr

'e' di lunghezza zero

If Not IsNumeric(Chr(KeyAscii)) Then
If KeyAscii <> Asc(vbTab) And KeyAscii <> Asc(vbBack) _
And KeyAscii <> Asc(vbCr) And KeyAscii <> Asc(vbLf) Then
''carattere non accettato

KeyAscii = 0
Exit Sub
End If
End If
''controllo campo di validita': ad esempio 1-200

Dim TmpStr As String
If KeyAscii <> Asc(vbBack) Then
TmpStr = Left(Text1.Text, Text1.SelStart)
TmpStr = TmpStr & Chr(KeyAscii)
TmpStr = TmpStr & Right(Text1.Text, Len(Text1.Text) _
- Text1.SelStart - Text1.SelLength)
Else ''comportamento particolare del backspace
TmpStr = Left(Text1.Text, Text1.SelStart)
If Text1.SelLength > 0 Then
''il backspace cancella la selezione

TmpStr = TmpStr & Right(Text1.Text, Len(Text1.Text) -
Text1.SelStart - Text1.SelLength)
Else
'il backspace cancella il carattere a sinistra del cursore

TmpStr = Left(TmpStr, Len(TmpStr) - 1)
TmpStr = TmpStr & Right(Text1.Text, Len(Text1.Text) -
Text1.SelStart - Text1.SelLength)
End If
End If
If Not (Val(TmpStr) >= 0 And Val(TmpStr) <= 200) Then
KeyAscii = 0
End If
End Sub

Dunque, innanzitutto devi limitare i caratteri digitabili ai
numeri+enter+tab+backspace, no?
Osserva il codice allegato

Andare nell'evento KeyPress del TextBox e porre il parametro
KeyAscii = 0 per tutti gli altri casi.
Poi fai un lavoro molto bello... simuli l'inserimento del
carattere in una variabile temporanea (ovviamente tenendo conto
della sostituzione dell'eventuale testo selezionato al momento
del keystroke) e se il suo valore e' nel campo di esistenza ok,
altrimenti annulli la digitazione sempre ponendo KeyAscii=0.
Ecco un esempio. Non e' nemmeno necessario toccare la proprieta'
MaxLength











( looktext.html )- by Paolo Puglisi - Modifica del 17/12/2023