Vérifiez l'écriture dans un textbox

Signaler
Messages postés
59
Date d'inscription
samedi 13 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2013
-
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
-
Salut,

J'ai un probléme, j'ai un champ dans ma base de type entier et je veux vérifier est ce que la valeur entrée dans le textbox est un entier où non si non je déclenche un message à l'utilisateur d'entrer une valeur numérique dans le champ concerné

Merci

3 réponses

Messages postés
59
Date d'inscription
samedi 13 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2013

je travail avec l ado.net et j'ai une liaison entre ma base et mon application et je veux faire un ajout d'apres mon application vers la base de données
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour,

Tu veux vérifier que la saisie est un entier ou est numérique, ce n'est pas tout à fait pareil ?

Dans le 1er cas je ne vois guère que tester la valeur elle-même. Un entier va de -32768 à +32767.

Dans le 2ème cas, converti la saisie en numérique (de tête .ToVal() (je travaille en VB6 habituellement) et si le retour est 0, ce n'est pas du numérique.


Calade
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
1
Salut,

Voilà une solution que j'aime bien. Elle passe par la création d'un nouveau Control hérité de TextBox ce qui permet d'apporter des comportements personnalisés.

Ajoute une classe à ton projet et donne lui comme nom NumericTextBox par exemple.

Voici le code de la classe:

Public Class NumericTextBox
  Inherits System.Windows.Forms.TextBox
  
  Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
    MyBase.OnKeyPress(e)
    'Si le caractère saisi est autre chose que des chiffres ou le séparateur décimal
    If Not (Char.IsDigit(e.KeyChar) OrElse e.KeyChar = "," OrElse e.KeyChar=Chr(8) OrElse e.KeyChar=".") Then
        e.Handled = True 'Ignore la saisie
      '-- le code qui suit est pour être sur que l'on ne saisisse pas 2 fois le séparateur décimal
      ElseIf e.KeyChar="." OrElse e.KeyChar = "," Then
        If Me.Text.IndexOf(",",0) = -1 Then
            e.Keychar=CChar(",")
          Else
            e.Handled = True
        End If
    End If
  End Sub

End Class


Génère ton projet et tu obtiens, dans la boite à outils, un objet NumericTextBox que tu peux utiliser sur tes forms.

A+