7
votes

C # - Validation de la boîte de texte

J'ai un code qui vérifie et veille à ce que lorsque les utilisateurs entrent dans le champ, un entier de 1 à 10 doit être entré.

Bien que si les utilisateurs se concentrent sur le champ, les "mauvaises" données ( tels que "FDGFDG") reste laissé sur le terrain. Certains peuvent donc démontrer comment lorsque la mise au point est perdue sur le terrain, si les données ne sont pas valides, une valeur par défaut sera saisie à la place par ex. 5 xxx


5 commentaires

@Gats: C'est Winforms Desktop App ...


Ceci est WinForms Pas une page Web.


@Gats: Même s'il s'agissait d'une application Web, la validation du côté serveur est obligatoire. La validation côté client doit être une addition de commodité à la validation côté serveur.


Vous devriez également jeter un coup d'œil à un ERRORPOVIDER qui est une façon pratique de montrer à l'utilisateur qu'une entrée est fausse.


Je suis un outil. C'est ce qui se passe lorsque vous répondez à 4 heures du matin :)


4 Réponses :


0
votes

acheminez ici et j'utiliserais le Tryparse


0 commentaires

0
votes

Si vous êtes une validation à la main comme vous le faites ici, tout ce que vous avez à faire est de définir la valeur par défaut après la messageriebox.show ()

Dans Winforms standard, je ne pense pas que vous ayez un soutien cadre à la validation, mais vous pouvez regarder cela: http://msdn.microsoft.com/en-us/library/ms951078.aspx pour inspiration afin de ne pas disperser cette logique sur votre application


0 commentaires

0
votes

Utilisez le laisser événement Sur la commande de zone de texte pour valider et définir la valeur par défaut


0 commentaires

15
votes

Il existe plusieurs événements que vous pouvez utiliser ici, laisser code>, lutfocus code> et validant code> Il y a plus de discussions sur ces différents événements sur msdn ici .

sous certains scénarios Le code> et le lostfocus code> ne tirera pas si le mieux à utiliser dans votre cas est le Validation de code> Evénement: p>

    textBox1.Validating += new CancelEventHandler(textBox1_Validating);


    void textBox1_Validating(object sender, CancelEventArgs e)
    {
        int numberEntered;

        if (int.TryParse(textBox1.Text, out numberEntered))
        {
            if  (numberEntered < 1 || numberEntered > 10) 
            { 
                MessageBox.Show("You have to enter a number between 1 and 10");
                textBox1.Text = 5.ToString();
            }
        }
        else
        {
            MessageBox.Show("You need to enter an integer");
            textBox1.Text = 5.ToString();
        }
    }


0 commentaires