2009-11-10 126 views
1

我正在尝试制作一个具有自定义检查图像的“复选框”。当用户点击图片框时,我需要它在选中和取消选中之间切换。我试了下面的代码,第一次点击显示检查图像很好,但是第二次点击什么都不做。有任何想法吗?切换PictureBox图像C#

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

回答

4

if说法是错误的,因为它是不太可能回到true因为你比较,你重新创建每次Image类的实例。你可以这样修改:

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