Dernier petit effort

aposfa Messages postés 36 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 14 mars 2009 - 23 mars 2006 à 13:35
aposfa Messages postés 36 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 14 mars 2009 - 23 mars 2006 à 19:39
Salut à tous

Voici une fonction qui doit retourner un entier, sauf que dans certains cas, si les conditions ne sont pas satisfaites, je dois juste effacer la textbox mais la fonction m'oblige a retourner un entier, et dans mon programme j'ai un test qui empeche la saisie de 0 et des autres chiffres s'il ne sont pas placés au bon endroit (c'est un sudoku :p)
Alors il faut que je trouve une astuce qui me permette de ne pas retourner d'entier quand les conditions ne sont pas satisfaites.

le code :

public int Value
{
set
{
if(value==0)
{
this.Enabled = true;
this.Text = string.Empty;
}
else
{
this.Enabled = false;
this.Text = value.ToString();
}
}
get
{
if(this.Text != string.Empty)
{
try
{
return int.Parse(this.Text);
}
catch(FormatException) //Si le caractère entré n'est pas convertible en entier
{
MessageBox.Show("Vous devez saisir un nombre","Erreur");
this.ResetText();
return 0; //il faudrait enlever ça
}
}
else
return 0; //il faudrait aussi enlever ça
}
}

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 mars 2006 à 14:02
Salut, déja si tu es en .NET 2.0 utilises TryParse à la place de Parse + Exception.
0
aposfa Messages postés 36 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 14 mars 2009
23 mars 2006 à 14:35
merci Lutinore mais je n'ai pas TryParse.
0
lanarchyste Messages postés 19 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 18 mai 2006
23 mars 2006 à 17:28
try
{
//Code a risque
//Si tu veux créeer une exception
throw(new ...("Message d erreur"))
}
catch(Exception ex)
{
MessageBox.Show("Message d errerur"+ex.Message)
}
0
aposfa Messages postés 36 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 14 mars 2009
23 mars 2006 à 19:39
alors j'ai bien réfléchi et j'ai trouvé d'ou venait vraiment le probleme, il vient pas de cette fonction. Il vient de celle-ci (voir code)

Elle permet de tester si un chiffre à le droit d'etre placé ici. Sauf qu'elle teste aussi le zéro, et ça en fait je le veux pas, mais je sais pas comment l'enlever. Est ce que quelqu'un a la solution ???

SVP c'est assez pressé

Merci d'avance

code :

private bool accepted(Case c, int digit)
{
int line = c.getLine();
int column = c.getColumn();
int line2 = (c.getLine()/3)*3;
int column2 = (c.getColumn()/3)*3;

for(int i=0; i<9; i++) //Vérification de la ligne et de la colonne
{
if((digit == Grille[i,column].Value && c != Grille[i,column])||
(digit == Grille[line,i].Value && c != Grille[line,i]))
return false;
}
for(int i=line2; i<line2+3; i++) //Vérification du carré de 3*3
{
for(int j=column2; j<column2+3; j++)
{
if(Grille[i,j].Value == digit && Grille[i,j] != c)
return false;
}
}
return true;
}
0
Rejoignez-nous