2009-11-10 12 views
1

J'essaie de faire une "case à cocher" qui a une image de contrôle personnalisé. J'en ai besoin pour basculer entre coché et non coché lorsque l'utilisateur clique sur la zone d'image. J'ai essayé le code suivant, et le premier clic montre l'image vérifiée bien, mais un deuxième clic ne fait rien. Des idées?Changement des images PictureBox C#

déclaration
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); 
     } 
    } 

Répondre

4

Votre if est erroné car il est peu probable de revenir true parce que vous comparez les instances de la classe Image qui vous recréez chaque fois. Vous pouvez le modifier comme suit:

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; 
}