aposfa
Messages postés36Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention14 mars 2009
-
23 mars 2006 à 13:35
aposfa
Messages postés36Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention14 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
}
}
lanarchyste
Messages postés19Date d'inscriptionlundi 27 septembre 2004StatutMembreDernière intervention18 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)
}
aposfa
Messages postés36Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention14 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;
}