Interdire CERTAINS chiffre dans MaskedTextBox [Résolu/Fermé]

Signaler
Messages postés
68
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 septembre 2008
-
Messages postés
68
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 septembre 2008
-
Bonjour,
Me revoilà encore des questions sur la manipulation d'heures.
J'ai maintenant - grâce à vous - trouvé comment obliger l'utilisateur à saisir dans deux textbox deux heures au format hh:mm:ss. Grâce au masque de saisie : "00:00:00" de mes deux MaskedTextbox.
Je souhaite aller plus loin, en interdisant à l'utilisateur les chiffres 7,8,9 pour les dizaines de minutes et les dizaines de secondes, et interdire les chiffres 3 à 9 pour les dizaines d'heures.
En clair, comme mes deux MaskedTextbox sont soustraites, si l'utilisateur saisit pas erreur "15:65:05", le programme plante !
Comment éviter cela ?

J'ai tenté d'utiliser la fonction format :
"If Format (MaskedTextbox1.text,"##:6#:##") then
Message d'erreur
End if"

Je rencontre un problème de conversion de la chaîne.
Ou alors, il faudrait que le programme convertisse lui-même "15:65:05" en "16:05:05", mais cela me semble un peu compliqué !

Merci de m'aider encore et toujours

1 réponse

Messages postés
68
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
9 septembre 2008
10
OUF !
J'ai trouvé.
Un internaute m'a mis sur la voie (merci à lui) : il faut utiliser l'évènement TypeValidationCompleted.
D'abord, je détermine le type de validation de mes deux MaskedTextBox :

"Private Sub MaForm ()
MaskedTextbox1.ValidatingType=GetType(System.DateTime)
MaskedTextbox2.ValidatingType=GetType(System.DateTime)
End sub"

Ensuite je vérifie les données saisies par la méthode ValidateText :

"Private Sub CalculDurée_Click()
heure1 = MaskedTextbox1.ValidateText
heure2 = MaskedTextbox2.ValideText"
End sub"

Cette méthode déclenche l'évènement TypeValidationCompleted que j'ai défini de la manière suivante :
"Private Sub MaskedTextBox_TypeValidationCompleted()
If (Not e.IsValidInput) Then
MessageBox.Show("L'heure de début n'est pas au format hh:mm:ss !", "ATTENTION", MessageBoxButtons.OK)
End if
End sub"

Et voilà tout roule !