begin process at 2012 02 13 00:26:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > LIMITER LA SAISIE À CERTAINS CARACTÈRES/TOUCHES DANS UN TEXTBOX EN VB.NET

LIMITER LA SAISIE À CERTAINS CARACTÈRES/TOUCHES DANS UN TEXTBOX EN VB.NET


 Information sur la source

Note :
10 / 10 - par 5 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VB.NET Source .NET ( DotNet ) Classé sous :limiter, saisie, textbox, numerique, touches Niveau :Débutant Date de création :10/02/2003 Date de mise à jour :03/04/2007 21:33:46 Vu :18 335

Auteur : hvb

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


 Description

Voila, c'est encore une source assez simple, mais qui pourra surement depanner certains...
les methodes que j'utilisais en vb6 n'étant plus utilisables, j'ai du passer deux heures à faire des tests sur les evenements keydown et keypress, jusqu'a trouver que l'annulation se resumait à e.Handled = True dans un evenement keypress... :)

Je n'ai pas mis d'exemples pour TOUTS les Char.ISblabla que vb gere, mais avec ca je pense que vous pouvez en deduire ce qu'il reste...  

Source

  • Private Sub nombres_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles nombre.KeyPress
  • 'on accepte que les chiffres (e.KeyChar.IsDigit(e.KeyChar)), ainsi que la touche back (Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back) , sinon on annule (e.Handled = True)
  • If Char.IsDigit(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled = True
  • End Sub
  • Private Sub lettres_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles lettre.KeyPress
  • 'on accepte que des lettres, ainsi que la touche back
  • If Char.IsLetter(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled = True
  • End Sub
  • Private Sub majuscules_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles majuscule.KeyPress
  • 'on accepte que des majuscules, ainsi que la touche back
  • If Char.IsUpper(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled = True
  • End Sub
  • Private Sub texte_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles texte.KeyPress
  • 'on accepte chiffre et lettres (IsLetterOrDigit), espaces (IsWhiteSpace) et ponctuation (IsPunctuation)
  • 'ce qu'ils considerent comme ponctuation comporte certains characteres speciaux, comme le % ou le @...
  • If Char.IsLetterOrDigit(e.KeyChar) = False And Char.IsWhiteSpace(e.KeyChar) = False And Char.IsPunctuation(e.KeyChar) = False Then e.Handled = True
  • End Sub
  • Private Sub decimaltxt_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles decimaltxt.KeyPress
  • 'petit exemple pratique :
  • 'on accepte chiffres et virgule, ainsi que la touche back. On remplace un eventuel point par une virgule, et on refuse la saisie d'une virgule en tant que premier caractere
  • 'remplacement du point par une virgule
  • If Asc(e.KeyChar) = 46 Then e.KeyChar = ","
  • 'si c'est une virgule et qu'il y en a déja une dans le textbox, ou qu'elle est tappé en premier caractère, on annule la saisie
  • If Asc(e.KeyChar) = 44 And (CType(sender, TextBox).Text.IndexOf(",") > 0 Or CType(sender, TextBox).Text = "") Then e.Handled = True
  • 'si le caractere n'est pas un chiffre, back ou une virgule, on annule
  • If Char.IsDigit(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back And Asc(e.KeyChar) <> 44 Then e.Handled = True
  • End Sub
    Private Sub nombres_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles nombre.KeyPress
        'on accepte que les chiffres (e.KeyChar.IsDigit(e.KeyChar)), ainsi que la touche back (Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back) , sinon on annule (e.Handled = True)
        If Char.IsDigit(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled = True
    End Sub

    Private Sub lettres_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles lettre.KeyPress
        'on accepte que des lettres, ainsi que la touche back
        If Char.IsLetter(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled = True
    End Sub

    Private Sub majuscules_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles majuscule.KeyPress
        'on accepte que des majuscules, ainsi que la touche back
        If Char.IsUpper(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then e.Handled = True
    End Sub

    Private Sub texte_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles texte.KeyPress
        'on accepte chiffre et lettres (IsLetterOrDigit), espaces (IsWhiteSpace) et ponctuation (IsPunctuation)
        'ce qu'ils considerent comme ponctuation comporte certains characteres speciaux, comme le % ou le @...
        If Char.IsLetterOrDigit(e.KeyChar) = False And Char.IsWhiteSpace(e.KeyChar) = False And Char.IsPunctuation(e.KeyChar) = False Then e.Handled = True
    End Sub

    Private Sub decimaltxt_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles decimaltxt.KeyPress
        'petit exemple pratique :
        'on accepte chiffres et virgule, ainsi que la touche back. On remplace un eventuel point par une virgule, et on refuse la saisie d'une virgule en tant que premier caractere
        'remplacement du point par une virgule
        If Asc(e.KeyChar) = 46 Then e.KeyChar = ","
        'si c'est une virgule et qu'il y en a déja une dans le textbox, ou qu'elle est tappé en premier caractère, on annule la saisie
        If Asc(e.KeyChar) = 44 And (CType(sender, TextBox).Text.IndexOf(",") > 0 Or CType(sender, TextBox).Text = "") Then e.Handled = True
        'si le caractere n'est pas un chiffre, back ou une virgule, on annule
        If Char.IsDigit(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back And Asc(e.KeyChar) <> 44 Then e.Handled = True
    End Sub

 Conclusion

je sais que c 'est simple, mais en considérant que je me suis fait c**** à trouver comment faire, je me dis que ca pourra en aider d'autres.  


 Historique

03 avril 2007 21:33:46 :
petit raffraichissement du code, mais même mise en page

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FOND DE FEUILLE ANIMÉ : DÉGRADÉ MOUVANT POUR ABOUT OU SPLASH...
Source avec Zip Source avec une capture Source .NET (Dotnet) FONT VIEWER : VISIONNEUSE DE POLICES SYSTEMES.
Source avec Zip Source avec une capture Source .NET (Dotnet) HBSNAPSHOTERV3.0 : GESTIONNAIRE DE CAPTURES D'ÉCRAN
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU : PICROSS OU "PUZZLE JAPONAIS"
Source avec Zip Source .NET (Dotnet) [.NET2] COMPRESSION/DÉCOMPRESSION GZIP DE FICHIER GRÂCE À IO...

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

 Sources en rapport avec celle ci

LIMITER LE NOMBRE DE LIGNES DANS UN TEXTBOX par DuAel
Source avec Zip SAISIES CONTROLÉES DIVERSES (ALPHABÉTIQUES ET NUMÉRIQUES) par jmfmarques
Source .NET (Dotnet) CONTROLE DE SAISIE TEXTBOX SOUS VISUAL STUDIO EXPRESS 2005 par Thomeux
Source avec Zip Source avec une capture TEXTBOX EVOLUTION par bouv
Source avec Zip Source avec une capture TEXTBOX NUMERIQUE par joelmarie

Commentaires et avis

Commentaire de Falk le 13/04/2003 21:20:38

Vraiment Simpa ta source, dans le cadre de mon convertisseur  Euros j'avais "bidouillé en testant si ma valeur d'entrée était de type Numérique  (If Not IsNumeric(txtTaux.Text) Then...), ta solution semble plus fiable merci =)

Commentaire de LittleKeichi le 17/08/2003 10:31:04

Kler ke c simpa moi aussi je me suis fé c**** comme tu dis et pis finalement j'avais tjrs po de soluce. Donc un franc Merci s'impose :)
À la revoyure !

Commentaire de 666Ange le 19/08/2003 18:05:09

Merci pour le e.handled = true !!!

Commentaire de Benouille le 05/03/2007 15:19:33

pas mal le e.handled = true ...
faut que je teste ça!

par contre c'est louche ton " e.KeyChar.IsLetter(e.KeyChar) "
ça semble bizarre d'appeler une fonction avec lui même en parametre.

monobjet.mafonction (monobjet) ... chelou

je suppose que c'est une réminiscence de l'héritage ...



tite dernière question taquine, si on fait un copié collé dans ton textbox, s'passe quoi?


vb nouille, 4 ans plus tard

Commentaire de hvb le 06/03/2007 12:34:28

effectivement, e.KeyChar.IsLetter(e.KeyChar) est à remplacer par Char.IsLetter(e.KeyChar)
Le code date de 4 ans, j'apprenais la POO par tatonnement... ^^

Par contre pour ta "question taquine", effectivement, elle taquine... il faudrait penser à empecher le copier coller, qui peut tout faire exploser.
Je n'ai pas le temps de regarder tout de suite, mais on doit pouvoir ruser assez facilement.
Merci de tes remarques :)

Commentaire de avelone le 05/08/2007 20:03:24

Merci pour le code pour gérer que les chiffres et les virgules.

Très Bien

Merci

C'est excellent

Commentaire de arapahoo le 18/08/2007 11:13:23

Excellent et compact Merci  10

Commentaire de B Xeon Otman le 11/08/2010 14:10:01

Salut, je veux juste ajouter quelques chose sur la fonction "majuscules_KeyPress" :

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim pos As Integer = TextBox1.SelectionStart
        If Char.IsUpper(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back Then
            e.Handled = True
            If Char.IsLetter(e.KeyChar) Then
                TextBox1.Text = TextBox1.Text.Insert(pos, e.KeyChar.ToString.ToUpper)
                TextBox1.SelectionStart = pos + 1
            End If
        End If
End Sub

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

VBA Excel : Limiter la saisie sur plusieurs TextBox d'un UserForm [ par bibiledur ] Bonjour,Je suis un peu Novice.J'ai un formulaire sur lequel il y a une centaine de TextBox que j'aimerais limiter à l'insertion de nombres.Le problème limiter saisie d'un textbox [ par louly ] Bonjour,Je voudrai afin d'afficher dans une spreadsheet (VB6) avec taille de cellule fixé, limiter la saisie dans un textbox à la taille physique de c Limiter nombre de charactere saisie textbox via bouton [ par olobo ] Bonjour!Voila j'ai un petit soucis j'aimerais limiter la saisie dans une TextBox a 4 charatère la commande est donc  TxtBox.MaxLength = 4 Cependant ce Comment passer au TextBox suivant après une saisie en VBA [ par cassivellaunos ] Bonjour à tous, Je suis en train de me créer un UserForm en VBA (je pense que je suis dans le bon thème... )dans lequel j'ai placé - entre autres - u limiter la saisie dans un textbox en Vb.Net à un nombre binaire [ par ROSE250 ] Bonsoir à tous, je suis nouvelle sur ce forum. Voila je débute en programmation, et je voudrai savoir comment limiter la saisie dans un textbox à seul limiter la taille de textbox pour la saisie [ par germany1970 ] Bonjour, comment limiter la taille de textbox pour la saisie à seulement 15 caractères. merci [Catégorie modifiée VB6 -> VBA] VBA- Limiter la saisie d'un seul point OU virgule dans une TextBox [ par Nat44200 ] Bonjour a tous, Nouveau probleme dans mon projet. Voila, dans un USF sous Excel, j'ai plusieurs TextBox que j'ai limite uniquement aux numeriques, a Réaliser un textbox avec une listbox droulante pendant la saisie en vb.net (comme google ) [ par ryuzaki ] salut tous le monde, j'ai besoin d'intégrer un textbox dans mon projet (application) qui peut afficher une listbox de suggestions pendant la saisie, s TEXTBOX [ par abirch ] Bonjour à tous Comment peut on contrôler la saisie dans un textbox, sachant que j'ai le format "nombre". Les valeurs de saisie sont des entiers allant [Catégorie modifiée VB6 -> VBA] Controler le format de saisie dans un textbox VBA Excel [ par Cire37 ] Bonjour, Je cherche à controler la saisie dans un textbox, si le premier caractére est un chiffre alors saisie que de 4 chiffres dans ce textbox, si


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,576 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales