Вопрос

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

    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);
        }
    }
Это было полезно?

Решение

Ваш if утверждение неверно, так как оно вряд ли вернется true поскольку вы сравниваете экземпляры Изображение класс, который вы воссоздаете каждый раз.Вы могли бы изменить его следующим образом:

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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top