Сравнение picturebox.image в Visual Basic

Я пытаюсь создать подходящую игру в Visual Basic 2010, и чтобы проверить, действительно ли выбранные карты совпадают, я хочу сравнить значение firstchoice.image с secondchoice.image.

Проблема, с которой я сталкиваюсь, заключается в том, что при сравнении значение что-либо. System.Drawing.Bitmapпоэтому сравнение всегда возвращает true.

Код сравнения на данный момент:

If FirstI Is My.Resources.circle Then
    TempOne = 1
ElseIf FirstI Is My.Resources.crescent Then
    TempOne = 2
ElseIf FirstI Is My.Resources.pentagram Then
    TempOne = 3
ElseIf FirstI Is My.Resources.square Then
    TempOne = 4
ElseIf FirstI Is My.Resources.triangle Then
    TempOne = 5
ElseIf FirstI Is My.Resources.yinyang Then
    TempOne = 6
End If

If SecondI Is My.Resources.circle Then
    TempOne = 1
ElseIf SecondI Is My.Resources.crescent Then
    TempOne = 2
ElseIf SecondI Is My.Resources.pentagram Then
    TempOne = 3
ElseIf SecondI Is My.Resources.square Then
    TempOne = 4
ElseIf SecondI Is My.Resources.triangle Then
    TempOne = 5
ElseIf SecondI Is My.Resources.yinyang Then
    TempOne = 6
End If
Debug.WriteLine(FirstI)
Debug.WriteLine(SecondI)
If TempOne = TempTwo Then
    Return True
Else
    Return False
End If

FirstI и SecondI объявлены как

Private FirstI As Image
Private SecondI As Image

и заполняются данными, взятыми из массива изображений.

Private Cards() As Image = {My.Resources.circle, My.Resources.crescent, My.Resources.pentagram, My.Resources.square, My.Resources.triangle, My.Resources.yinyang, My.Resources.circle, My.Resources.crescent, My.Resources.pentagram, My.Resources.square, My.Resources.triangle, My.Resources.yinyang}

1 ответ

Решение

На вашем месте я бы не пытался напрямую сравнивать объекты / значения, я бы просто сравнивал состояние. Оставьте FirstIIndex и SecondIIndex (как целые числа), которые являются индексными целыми числами от 0 до Cards.Length. Когда вы устанавливаете это значение, установите изображение в Ci Cards(FirstIIndex). Если вы хотите увидеть, установлены ли они на одно и то же, просто проверьте, если FirstIIndex = SecondIndex.

Другие вопросы по тегам