Public Class Form1
Dim y As Integer = PictureBox1.Location.Y 'määritellään x ja y
Dim x As Integer = PictureBox1.Location.X
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode 'tutkitaan mikä näppäin
Case Keys.Left 'vasen?
x -= 1 'lisätään x:n arvoa yhdellä
PictureBox1.Location = New Point(x, y) 'liikutetaa
End Select
End Sub
End Classtommone lukee immediate windowssa ku ohjelmaa suorittaa:
A first chance exception of type 'System.NullReferenceException' occurred in liikkuu.exe
Mitä toi tarkottaa?
jonkun muuttujan arvo on null eli sille ei ole asetettu mitään arvoa ennen, kuin sitä yritetään käyttää. Veikkaisin, että Dimillä varatut x, y eivät näy Form1_KeyDown metodiin. Tämä on veikkaus kun en muista mitä varaus sanoja vb käyttää, mutta dim teki jotenkin hetkellisiä vain yhtä metodia varten joten olettaisin luokan muuttujien olevan private, protected tai public ainakin näin c#:ssa.
juu näinhän se ohjeiden mukaan onkin
http://www.harding.edu/USER/fmccown/WWW/
Eli vb.net == C# käskyt
Dim x as Integer == Integer x;
Private x as Integer == private x as Integer;
Eli muuta Dim -> Private ,niin pitäisi toimia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.