2013-04-16 2 views
2

У меня есть этот код, и у него есть ошибка в части if carloc = (250,524). Код должен проверить, находится ли автомобиль (картинка) где-то тогда, чтобы переместить ti где-то еще, когда вы нажимаете «A». Вот код:Если оператор с координатами (vb)

Public Class Form1 
Dim carloc As Point 
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 
    Select e.KeyCode 
     Case Keys.A 
      If carloc = (250,524) then 
       carloc = New Point(285, 524) 
       car.Location = carloc 
      End If 

    End Select 
End Sub 

End Class

ответ

2

Вы должны были бы проверить координаты по отдельности:

If carloc.X = 250 AndAlso carloc.Y = 524 Then 
    carloc = New Point(285, 524) 
    ' .... 

Если вы имеете дело с типом значения (Structure), что вы находитесь в в этом случае, или если тип реализует IEquatable(Of T), вы также можете написать:

If carloc = New Point(250, 524) Then 
    carloc = New Point(285, 524) 
    ' .... 

Это будет работать в этом случае, но не как правило для любого типа.

+1

Очиститель «Если carloc = Новая точка (250, 524) Затем« – AMissico

+0

@AMissico Да, но не в корпусе общего назначения ... Тип должен реализовывать равенство значимым образом (здесь, поскольку это struct, хотя) –

+0

@AMissico Отредактировано для включения этой опции –

Смежные вопросы