CONTROLE DE SAISIE TEXTBOX SOUS VISUAL STUDIO EXPRESS 2005

Jean_Elens Messages postés 53 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 16 octobre 2006 - 9 oct. 2006 à 20:44
manouwx Messages postés 1 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 23 août 2011 - 23 août 2011 à 14:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38448-controle-de-saisie-textbox-sous-visual-studio-express-2005

manouwx Messages postés 1 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 23 août 2011
23 août 2011 à 14:14
MAIS IL Y A UN PROBLEME QUI N'EST CONTROLER MES CHERE AMIS LE CAS DE LA VIRGULE ELLE N'EST PAS CONTROLER ON PEUT SAISIR PLUSIEUR FOIS LA VIRGULE MALHEUREUSEMENT CONTOLER C
vavay Messages postés 1 Date d'inscription mercredi 11 mai 2011 Statut Membre Dernière intervention 14 juin 2011
14 juin 2011 à 01:21
merci bcp thomeux
Thomeux Messages postés 58 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 14 janvier 2010
14 janv. 2010 à 17:14
De rien çà sert à cela l'entraide
Sebastius Messages postés 1 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010
13 janv. 2010 à 11:58
Après avoir chercher pas mal de temps, je suis ravi d'avoir pu trouver un code simple est fonctionnel pour visual studio 2008 !

Merci beaucoup de nous avoir fait partager ce code !
LunaPurple Messages postés 19 Date d'inscription dimanche 15 avril 2007 Statut Membre Dernière intervention 20 octobre 2010
23 août 2008 à 00:48
Salut,
Merci à Thomeux et Greg38BJ pour leurs codes qui m'ont beaucoup aidé.

Pour ceux qui préfèrent, le voici transformé en 'fonction', avec une petite correction au niveau du Case Entier (mettre à True au lieu de False pour interdir la saisie du point ou de la virgule).

Cette sub est à mettre dans le code du formulaire (en Private sub), ou bien dans un module (en Public Sub), selon l'utilisation que vous en ferez (dans un seul Form ou bien dans plusieurs).
Le fait de faire une Public Sub permet d'ajouter ce code dans un module déjà existant, et de ne pas avoir à créer un module Contrôle_Saisie spécifique (ce qui était mon cas, et je n'arrivais pas à récupérer le .Textbox_control de Controle_Saisie dans le code du KeyPress... Sûrement un truc que j'avais mal fait...? Mais avec la fonction, ça marche).

Voici la 'fonction' : (à mettre dans votre module ou le code du form)

Public Sub ControleSaisie(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs, ByVal Nombre As Boolean, ByVal Est_entier As Boolean, ByVal Est_positif As Boolean, ByVal Alphabet As Boolean, ByVal Maj As Boolean)
Select Case e.KeyChar
Case "0" To "9"
If Nombre False Then e.Handled True
'If CInt(sender) > 999 Then e.Handled = True
Case "a" To "z"
If Alphabet False Then e.Handled True
Case "A" To "Z"
If Maj False Then e.Handled True
Case ".", ","
If Est_entier = True Then
e.Handled = True
Else
e.KeyChar = ","
End If
Case "-"
If Est_positif = True Then
e.Handled = True
Else
'enlever le moins précedent
End If
Case Else
If (Char.IsControl(e.KeyChar)) Then
e.Handled = False
Else
e.Handled = True
End If
End Select
End Sub


Et voici le code appelant, dans l'event KeyPress du contrôle textbox dans lequel vous voulez contrôler la saisie.

Private Sub txtbx_ForfMontant_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtbx_ForfMontant.KeyPress
'contrôle que ce sont bien des Euros inférieurs à 999 € qui sont saisis dans le champ
ControleSaisie(sender, e, True, True, True, False, False)
Dim val As String
val = txtbx_ForfMontant.Text
If val <> "" And e.KeyChar <> Chr(8) Then
If Convert.ToInt16(val) > 99 Then MessageBox.Show("Etes-vous sûr du montant saisi ?")
End If
If e.KeyChar Chr(8) Then e.Handled False 'pour permettre la suppression des chiffres en trop ou la correction du nombre saisi
End Sub

Pour finir, je dis 'fonction", mais, comme elle ne renvoit pas directement de valeur, en fait, ce n'en est pas vraiment une... C'est pourquoi elle s'appelle Public Sub, et pas Public Function.

Vous l'aurez compris, ce code et ces explications s'adressent à des débutants (comme moi)...
greg38bj Messages postés 83 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 17 novembre 2008
14 déc. 2007 à 13:51
salut
tres bon code, j'y ai juste rajouté les majuscules:

Public Sub Textbox_control(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs, ByVal Nombre As Boolean, ByVal Est_entier As Boolean, ByVal Est_positif As Boolean, ByVal Alphabet As Boolean, ByVal Maj As Boolean)

Case "A" To "Z"If Maj False Then e.Handled True

et modifié les chiffres (le zéro peut être utile) :

Case "0" To "9"If Nombre False Then e.Handled True
timotep Messages postés 34 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 16 janvier 2008
27 mars 2007 à 16:38
Merci beaucoup pour ton code! Enfin un moyen simple de contrôler la saisie de caractères, que ce soit du numérique ou des caractères. Ca m'a bien servi, et ce code est simple à employer (je suis débutant en vb.net)
Jean_Elens Messages postés 53 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 16 octobre 2006
9 oct. 2006 à 20:44
Je commence en VB.NET et ne comprend pas bien ton bout de code... Probablement une confusion quelque part...Qu'est
Controle_saisie.Textbox_control ??
Rejoignez-nous