2010-09-20 2 views
1

Si une zone de texte comporte 1 chiffre ou un nombre supérieur à 31, le programme se bloque. comment dois-je arrêter ça?C# question de programme

jusqu'à présent, j'ai ce code.

if (dd.Text.Length <= 1 || dd.Text > 31) 
    return; 

De toute évidence, ce qui ne va pas ... :(

+1

Qu'est-ce que vous essayez exactement de faire ici. Etes-vous en train d'analyser le jour du mois? Dans ce cas, vous ne pouvez pas vérifier vers 31 puisque tous les mois n'ont pas 31 jours. Aussi, comparer une chaîne (je suppose que le texte est une chaîne) vers le numéro 31 ne fonctionnera pas comme prévu. –

+1

Quel est le code qui utilise votre zone de texte? Et il vous manque un ".Length" sur la deuxième partie de votre instruction if. –

Répondre

6
dd.Text > 31 

Le code ci-dessus compare une chaîne à un int. Vous devriez essayer:

int val = 0; 
if (Int32.TryParse(dd.Text, out val)) 
{ 
    if (val > 31) return; 
} 
+0

btw, vous pouvez ne pas initialiser 'val' à' 0' - il sera fait automatiquement par la méthode de l'acceptation-out – abatishchev

3
dd.Text > 31 

Cette ligne de travail ne vais pas essayer:

int.parse(dd.Text) > 31 

également Si vous ne saisissez pas les caractères non numériques, vous pouvez désinfecter en premier lieu

-1

Ce qui est évident que vous ne pensez pas que ce que vous faites. Tout d'abord, vous devez comprendre quels types de base sont disponibles en C# et pour quoi ils sont.

Pour l'instant Vous devriez lire à propos de String, et Integer. Vous comprendrez pourquoi ce code ne fonctionne pas.

Si vous voulez vérifier, que la valeur de texte d'une zone de texte est entre deux nombres, tout d'abord, il doit être un nombre. Donc vous devez le lancer ...

Ensuite, vous pouvez opérer dessus et comparer.

String myText = textBox.Text; 
int myValue = -1; 

if(Int32.tryPart(myText,myValue))  
if(myValue > 31) 
    return; 
+0

Pourquoi écrivez-vous la première lettre du mot Vous avec une capitale au fait? Tu ne sais pas que c'est maintenant comme ça? : P – Younes

+0

L'habitude de l'orthographe des règles de ma langue maternelle. –