Je dois faire un travail dans lequel on me demande de dessiner des formes (soit carré, triangle ou triangle inversé) suite à un choix de l'utilisateur (il coche un bouton radio --> mais là n'est pas le problème). L'utilisateur doit choisir deux couleurs différentes à partir de deux combo box différents (le combo box 1 et le combo box 2) Il doit aussi dire le nombre de petits carrés qui formeront son image (entre 3 et 15 et il écrit ce chiffre dans un combo box).
Voici mon problème:
Pour un carré ( figure choisie) de 3 petits carrés par 3 petits carrés, il faut que j'alterne les couleurs.
Ex:
rouge bleu rouge
bleu rouge bleu
rouge bleu rouge
mais dans mon cas nous retrouvons:
rouge bleu rouge
rouge bleu rouge
rouge bleu rouge
et ça ne fonctionne donc pas.
De plus, l'utilisateur ayant un choix de couleur à faire dans son combo box, je n'arrive pas à convertir son choix pour que mon programme choisisse la bonne brosse, donc la bonne couleur --> Je pensais faire un switch case pour sa couleur, mais C# ne veut pas l'accepter dans la déclaration suivante:
Voici le code que j'ai écrit pour le carré:
private void btnDessiner_Click(object sender, EventArgs e)
{
Color Couleur1 = Color.Red;
Color Couleur2 = Color.Blue;
Color Couleur3 = Color.Yellow;
Color Couleur4 = Color.Orange;
Color Couleur5 = Color.MidnightBlue;
SolidBrush BrosseRouge = new SolidBrush(Couleur1);
SolidBrush BrosseBleue = new SolidBrush(Couleur2);
SolidBrush BrosseJaune = new SolidBrush(Couleur3);
SolidBrush BrosseOrange = new SolidBrush(Couleur4);
SolidBrush BrosseBleueMinuit = new SolidBrush(Couleur5);
Graphics Dessin = this.panDessin.CreateGraphics();
Dessin.FillRectangle(BrosseBleueMinuit, 0, 0, 300, 300);
int y = 4;
int x = 4;
int nNbreCarres;
string sBrosseChoisie1;
string sBrosseChoisie2;
int j=1;
int k=1;
try
{
nNbreCarres = Convert.ToInt32(txtNbreCarres.Text);
}
catch
{
MessageBox.Show("Le nombre de carrés est invalide",
"Validation du nombre de carrés",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
txtNbreCarres.Focus();
return;
}
if (nNbreCarres < 3 || nNbreCarres > 15)
{
MessageBox.Show("Le nombre de carrés doit être entre 3 et 15 inclusivement",
"Validation du nombre de carrés",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
txtNbreCarres.Focus();
return;
}
switch (cboCouleur1.SelectedIndex)
{
case 0: sBrosseChoisie1 = "BrosseRouge";
break;
case 1 : sBrosseChoisie1 = "BrosseBleue";
break;
case 2 : sBrosseChoisie1 = "BrosseJaune";
break;
case 3 :
default:sBrosseChoisie1 = "BrosseOrange";
break;
}
switch (cboCouleur2.SelectedIndex)
{
case 0 : sBrosseChoisie2 = "BrosseRouge";
break;
case 1 : sBrosseChoisie2 = "BrosseBleue";
break;
case 2 : sBrosseChoisie2 = "BrosseJaune";
break;
case 3 :
default: sBrosseChoisie2 = "BrosseOrange";
break;
}
Dessin.FillRectangle(BrosseBleueMinuit, x, y, 300, 300);
if (rbCarre.Checked)
{
while (j <= nNbreCarres)
{
while (k <= nNbreCarres)
{
Dessin.FillRectangle(sBrosseChoisie1 x, y, 10, 10);
x = x + 15;
k++;
if (k <= nNbreCarres)
{
Dessin.FillRectangle(sBrosseChoisie2, x, y, 10, 10);
x = x + 15;
k++;
}
}
y = y + 15;
j++;
k = 1;
x = 4;
}
}
Merci de m'aider le plus rapidement possible.
Partager