Comment limiter un nombre dans un TextBox ? [Résolu]

Micoute - 14 févr. 2013 à 16:19 - Dernière réponse :  Utilisateur anonyme
- 15 févr. 2013 à 11:58
Bonjour à tous,

j'aimerais savoir s'il est possible de limiter un nombre dans un TextBox, car pour mon programme de conversion d'heures et minutes en heures et centièmes de limiter les minutes à 59 et les centièmes à 99.

Je vous remercie par avance de votre aide précieuse à mes yeux.


Tout homme doit être poli ; mais il doit aussi être libre.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
3
Merci
Voici le code correspondant à ce que je vous ai expliqué.

Imports System.Math
Public Class Accueil
    Dim H As Integer, C As Integer, M As Integer, D As Double

    Private Sub ConversionDéciVersSexa()
        Dim x As Integer
        D = (H + C / 100) * 60
        x = CInt(Truncate(D))
        D = DivRem(x, 60, M)
    End Sub

    Private Sub ConversionSexaVersDéci()
        Dim x As Integer
        D = (H + M / 60) * 100
        x = CInt(Truncate(D))
        D = DivRem(x, 100, M)
    End Sub

End Class


Cordialement.

Étant illettré, je signe d'une croix : ×

Merci Zermelo 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de Zermelo
Meilleure réponse
NHenry 14182 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 14 févr. 2013 à 19:23
3
Merci
Bonjour,

Regardes aussi le contrôle NumericUUpDown, il t'aidera peut être.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---

Merci NHenry 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de NHenry
Meilleure réponse
Utilisateur anonyme - 15 févr. 2013 à 03:20
3
Merci
Bonjour,

Tout en partageant l'idée de NHenry, voici donc un petit exemple. Cela prend un TextBox et un bouton. J'ai bien essayé de faire une version bouclant automatiquement. Mais ce que je pensais qui devait marcher, me donnait toujours une boucle sans fin. Cela fait que j'ai oublié l'histoire de la boucle.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim maximum As Integer = 59
        'Ou bien
        'dim maximum As Integer = 99
        Dim valeur As Integer = CInt(TextBox1.Text)
        Dim trophaut As Boolean = EstCeTrop(valeur, maximum)
        If trophaut = True Then
            MessageBox.Show("La valeur indiquée est trop élevée")
            TextBox1.Text = String.Empty
        Else
            MessageBox.Show("La valeur indiquée est acceptable")
        End If
    End Sub
    Function EstCeTrop(valeur, maximum) As Boolean
        If valeur > maximum Then
            Return True
        Else
            Return False
        End If
    End Function

Merci Utilisateur anonyme 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
3
Merci
Bonjour à tous.

Je voudrais attirer l'attention sur la fonction DivRem, dont j'avais toujours rêvé qu'elle existât en vb6. Son sens est le suivant
Quotient = DivRem(Dividende, Diviseur, Reste)

le troisième argument étant déclaré ByRef pour pouvoir être récupéré. C'est donc par essence la fonction qui traite la division avec reste (encore nommée division entière). Or cette division est la clé du codage/décodage arithmétique.



Étant illettré, je signe d'une croix : ×

Merci Zermelo 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de Zermelo
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 14 févr. 2013 à 17:49
0
Merci
Salut

tu peux limiter le nombre de caractères
textbox.maxlength
ou soit utilise le numericupdown control
Commenter la réponse de cs_ShayW
0
Merci
Bonjour Micoute.

Je crains fort que votre question soit mal posée, et ceci pour deux raisons.
a) Les TextBox ne servent que d'afficheurs dans votre problème. Ce qu'il faut limiter, ce sont des entiers à afficher dans ce qu'il vous plaira, et pourquoi pas des TextBox. Mais parler de limitation dans un TextBox serait supposer c'est ce contrôle qui pourrait se charger de la limitation.
b) Les entiers à afficher sont
le nombre d'heures H,
le nombre de centièmes C,
le nombre de minutes M.

Lorsqu'une durée D (un nombre réel, qui en général ne peut être qu'approximativement exprimée par des entiers) est décrite par H et C, sa valeur est
D = H + C/100 exprimée en décimal

Si par contre elle est décrite par H et M,
sa valeur est
D = H + M/60 exprimée en sexadécimal

Les limitations que vous souhaitez viendront toutes seules si vous procédez mathématiquement aux conversions.
Pour convertir le décimal en sexadécimal, vous exprimez la durée D en minutes, vous tronquez le nombre obtenu à l'entier le plus proche, et vous faites la division avec reste de cet entier par 60. Le reste vous donnera M, et le quotient vous donnera H. Vous procédez de la même manière pour la conversion inverse.
La classe Math contient tout ce qu'il faut pour faire cela. Mais je ne saurais dire quoi de tête. Je vous quitte donc provisoirement.

À très bientôt.







Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Merci
Bonjour à tous et merci beaucoup,

finalement, la meilleure solution c'est le contrôle NumericUpDown, car il ne délivre que des valeurs numériques entre 0 et maximum, j'ai malgré tout, mis des sécurités, car on peut taper les valeurs au clavier, ce qui n'exclue pas les caractères alphabétiques et dommage que je sois limité par mon savoir, car VB est très complet.

Merci encore pour vos enseignements qui me sont très profitables.

Tout homme doit être poli ; mais il doit aussi être libre.
Commenter la réponse de Micoute
Utilisateur anonyme - 15 févr. 2013 à 11:58
0
Merci
j'ai malgré tout, mis des sécurités, car on peut taper les valeurs au clavier, ce qui n'exclue pas les caractères alphabétiques

Tu peux donner un exemple de ce phénomène ? Je viens de tester ce composant et il n'y a pas de problème particulier.
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.