Invite de commande : textbox locker

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 214 fois - Téléchargée 33 fois

Contenu du snippet

Cette source montre comment bloquer un textbox une fois que l'utilisateur à cliqué sur Entrer. L'utilisateur ne peut alors plus éditer le contenus du textBox mais il peut écrire à la fin (un peut comme command.com).

Source / Exemple :


'Code à mettre dans votre Feuille
'Votre textBox : Text1

Private LockedLength As Long
Private LockedString As String

Private Sub Text1_Change()
    If LockedLength = 0 Or LockedString = "" Then Exit Sub
    TextBoxLocker Text1, -1
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
    KeyAscii = TextBoxLocker(Text1, KeyAscii, "Shell> ")
End Sub

Public Function TextBoxLocker(ByVal ObjTextBox As TextBox, ByRef KeyAscii As Integer, Optional Chaine As String = "") As Integer
    If KeyAscii = -1 Then
        If Left(ObjTextBox.Text, LockedLength) <> LockedString Then
            ObjTextBox.Text = LockedString
            ObjTextBox.SelStart = LockedLength
        End If
        Exit Function
    End If
    TextBoxLocker = KeyAscii
    If ObjTextBox.SelStart < LockedLength Then
        ObjTextBox.SelStart = LockedLength
        TextBoxLocker = 0
        Exit Function
    End If
    Select Case KeyAscii
    Case 8
        If ObjTextBox.SelStart <= LockedLength Then
            TextBoxLocker = 0
            Exit Function
        End If
    Case 13
        ObjTextBox.Text = ObjTextBox.Text & vbNewLine & Chaine
        ObjTextBox.SelStart = Len(ObjTextBox.Text)
        LockedLength = Len(ObjTextBox.Text)
        LockedString = Left(ObjTextBox.Text, LockedLength)
        TextBoxLocker = 0
    End Select
End Function

Conclusion :


Ce code est le début d'un invite de commande. D'autres bouts de code viendront par la suite.

A voir également

Ajouter un commentaire

Commentaires

cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
oups, je l'avais pas vu
psykocrash
Messages postés
244
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009
-
Heuu lol, le truc c'est que sa compare toujours car l'évenement Change est déclaché à chaque fois qu'il y a un changement dans le TextBox. Et puis pour ton code avec mid(), t'aime pas le mien avec Left() ?

If Left(ObjTextBox.Text, LockedLength) <> LockedString Then
ObjTextBox.Text = LockedString
ObjTextBox.SelStart = LockedLength
End If
cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
non, je veux dire toujours comparer avec la string stopper

if LockedString <> mid(textebox1.text,1,len(LockedString ) then
'Erreur
end if
psykocrash
Messages postés
244
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009
-
Tu veut dire meme la ligne que l'utilisateur est en train d'écrire ? sa voudrait dire que s'il veut réctifier ce qu'il écrit il ne pourra pas. ce serait dommage non ?
cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
un conseil, sur le change du textbox, garde la string en mémoire, donc qu'il se passe n'importe quoi (coller, sourie, retour, ....) tu peux toujours le détecter et remplacer le textbox en conséquance

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.