Je vois plusieurs choses dans ton code
d'abord dans tes 2 méthodes
else
pictureBox1.Image = null;
donc si tu en décoches un tout s'efface, ça n'est pas le but si j'ai bien compris
Puis tester si if (checkBox2 .Checked == true)
ne sert à rien, le contenu de la parenthèse doit correspondre à un bool, or Checked est un bool
donc if (checkBox2 .Checked)
suffit.
Ensuite dans
if (checkBox2 .Checked == true)
{
...
}
if (checkBox2.Checked == true)
{
...
}
tu testes deux fois checkedBox2
A ta place je ferais une méthode pour gérer les deux chekbox, tu fais comme ça:
tu écris:
private void MaGestionDeCheckBox(object sender, EventArgs e)
{
}
Ensuite dans les propriétés de chaque ChekBox tu cliques sur le petit éclair
Tu navigues jusqu'à l'événement CheckedChange et tu clique sur la petite flèche bleue vers le bas.
Dans la liste déroulante, tu choisis la méthode MaGestionDeCheckBox
Maintenant les événements de tes deux checkedBox vont activer la même méthode, ça évite le code en double et simplifie la maintenance (si tu dois changer un bout de code, tu risques d'oublier de le faire deux fois!).
Maintenant, si j'ai compris ta démarche, la picturebox ne doit être vide que si aucun checkBox n'est coché donc je commencerais par ça
private void MaGestionDeCheckBox(object sender, EventArgs e)
{
if (!checkBox1.Checked && !checkBox2.Checked)
{
pictureBox1.Image = null;
return;//on n'a plus rien à faire dans cette méthode on sort
}
}
ou si tu veux éviter le return
if (checkBox1.Checked || checkBox2.Checked)
{
......
}
else
pictureBox1.Image = null;
Maintenant pour superposer des images dans un pictureBox regarde ici
http://www.developpez.net/forums/d688812/dotnet/developpement-windows/windows-forms/plusieurs-images-picturebox/