Commutation PictureBox images C #
-
19-09-2019 - |
Question
Je suis en train de faire une « case à cocher » qui a une image de vérification personnalisée. Je en ai besoin pour basculer entre coché et décoché lorsque l'utilisateur clique sur le picturebox. J'ai essayé le code suivant, et le premier clic montre l'amende d'image vérifiée, mais un second clic ne fait rien. Toutes les idées?
private void pictureBox7_Click(object sender, EventArgs e)
{
if (pictureBox7.Image == Image.FromFile(checkedImg))
{
pictureBox7.Image = Image.FromFile(uncheckedImg);
}
else
{
pictureBox7.Image = Image.FromFile(checkedImg);
}
}
La solution
Votre déclaration de if
est erroné car il est peu probable de revenir true
parce que vous comparez les instances de la la classe de l'image que vous recréez chaque fois. Vous pouvez modifier comme ceci:
private bool _pbChecked = false;
private void pictureBox7_Click(object sender, EventArgs e)
{
var pictureBox = (PictureBox)sender;
string imgPath = _pbChecked ? uncheckedImg : checkedImg;
pictureBox.Image = Image.FromFile(imgPath);
_pbChecked = !_pbChecked;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow