Переключение PictureBox Images C # - PullRequest
1 голос
/ 10 ноября 2009

Я пытаюсь сделать "флажок", который имеет пользовательское изображение проверки. Мне нужно, чтобы он переключался между проверенным и непроверенным, когда пользователь щелкает на картинке. Я попробовал следующий код, и первый щелчок показывает проверенное изображение в порядке, однако второй щелчок ничего не делает. Есть идеи?

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

1 Ответ

4 голосов
/ 10 ноября 2009

Ваше утверждение 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;
}
...