Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Kuvan liikutus - ajonaikainen virhe

vsbs [19.03.2006 13:04:15]

#

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 Class

tommone lukee immediate windowssa ku ohjelmaa suorittaa:

A first chance exception of type 'System.NullReferenceException' occurred in liikkuu.exe

Mitä toi tarkottaa?

panttu [20.03.2006 20:55:30]

#

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/vbnet_csharp_comparison.html

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta