CONTROLE DE SAISIE TEXTBOX SOUS VISUAL STUDIO EXPRESS 2005
Jean_Elens
Messages postés53Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 octobre 2006
-
9 oct. 2006 à 20:44
manouwx
Messages postés1Date d'inscriptionmercredi 6 décembre 2006StatutMembreDernière intervention23 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.
manouwx
Messages postés1Date d'inscriptionmercredi 6 décembre 2006StatutMembreDernière intervention23 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és1Date d'inscriptionmercredi 11 mai 2011StatutMembreDernière intervention14 juin 2011 14 juin 2011 à 01:21
merci bcp thomeux
Thomeux
Messages postés58Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention14 janvier 2010 14 janv. 2010 à 17:14
De rien çà sert à cela l'entraide
Sebastius
Messages postés1Date d'inscriptionmercredi 13 janvier 2010StatutMembreDernière intervention13 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és19Date d'inscriptiondimanche 15 avril 2007StatutMembreDernière intervention20 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és83Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention17 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és34Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention16 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és53Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention16 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 ??
23 août 2011 à 14:14
14 juin 2011 à 01:21
14 janv. 2010 à 17:14
13 janv. 2010 à 11:58
Merci beaucoup de nous avoir fait partager ce code !
23 août 2008 à 00:48
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)...
14 déc. 2007 à 13:51
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
27 mars 2007 à 16:38
9 oct. 2006 à 20:44
Controle_saisie.Textbox_control ??