2013-04-16 32 views
2

我有這段代碼,它在if carloc = (250,524)部分有錯誤。代碼是檢查汽車(picturebox)是否在某個地方,然後在推動'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 

末級

回答

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是的,但不是在一般用途的情況下...類型需要以有意義的方式實現平等(這裏做,因爲它是一個結構,雖然) –

+0

@AMISSICIC編輯包括該選項 –