문제

사용자 정의 확인 이미지가있는 "확인란"을 만들려고합니다. 사용자가 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