Interdire CERTAINS chiffre dans MaskedTextBox

Résolu
vérokit Messages postés 68 Statut Membre -  
vérokit Messages postés 68 Statut Membre -
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
Configuration: Windows 2000
Internet Explorer 6.0

1 réponse

  1. vérokit Messages postés 68 Statut Membre 9
     
    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 !
    0