CONTROLE DE SAISIE TEXTBOX SOUS VISUAL STUDIO EXPRESS 2005

Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 octobre 2006
- - Dernière réponse : 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

Afficher la suite 
Jean_Elens
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 octobre 2006
-
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 ??
timotep
Messages postés
34
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2008
-
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)
greg38bj
Messages postés
84
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
17 novembre 2008
-
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
LunaPurple
Messages postés
20
Date d'inscription
dimanche 15 avril 2007
Statut
Membre
Dernière intervention
20 octobre 2010
-
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)...
Sebastius
Messages postés
1
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
13 janvier 2010
-
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 !