webForumDet fria alternativet

problem att starta metoden

10 svar · 638 visningar · startad av Vinnaren

VinnarenMedlem sedan sep. 2005833 inlägg
#1

Hej

Jag får inte igång min metod, ShowInfo.

koden jag har:

Public Class Form1
    Private mybox As Box
    Private info As arvBox

    Private graphArea As Graphics

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        mybox.MoveUpp(20)
        graphArea.Clear(gPic.BackColor)
        mybox.ShowBox(graphArea)
    End Sub
End Class
Public Class Box
    Public x As Integer = 10 'Private
    Public y As Integer = 50
    Public widthR As Integer = 15
    Public heightR As Integer = 15
    Dim myPen As Pen = New Pen(Color.Red, 2)

    Public Sub ShowBox(ByVal graphArea As Graphics)
        graphArea.DrawRectangle(myPen, x, y, widthR, heightR)
    End Sub

    Public Sub MoveUpp(ByVal dy As Integer)
        y -= dy
    End Sub
End Class

Det är denna jag vill starta, men det vill sig inte :(

Public Class arvBox
    Inherits Box

    Public Sub ShowInfo(ByVal graphArea As Graphics)
        Dim sb As SolidBrush = New SolidBrush(Color.Red)
        Dim st As String = x & " " & y
        Dim f As Font = New Font("Arial", 12, FontStyle.Bold)
        graphArea.DrawString(st, f, sb, x, y)
    End Sub

End Class

Har provat med

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        mybox.MoveUpp(20)
        graphArea.Clear(gPic.BackColor)
        mybox.ShowBox(graphArea)
        

        info.ShowInfo(graphArea)

    End Sub

Men får då felmeddelandet:
Objektreferensen har inte angetts till en instans av ett objekt.

Hur löser jag detta??

Tacksam för all hjälp :stud

PMedlem sedan jan. 20012 204 inlägg
#2

Någonstans måste du instansiera "info".

info = new arvBox()
VinnarenMedlem sedan sep. 2005833 inlägg
#3

ok, tack, hade visst glömt () efter arvBox.

Men nu får jag felmeddelandet:
'ShowInfo' is not a member of 'System.Array'.

på raden:

info.ShowInfo(graphArea)

Hur löser jag det? :q

PMedlem sedan jan. 20012 204 inlägg
#4

Hur ser instansieringen av info ut nu då?

VinnarenMedlem sedan sep. 2005833 inlägg
#5

så:

info = new arvBox()

o sen anropar den:

info.ShowInfo(graphArea)

denna anropas:

Public Class arvBox
    Inherits Box

    Public Sub ShowInfo(ByVal graphArea As Graphics)
        Dim sb As SolidBrush = New SolidBrush(Color.Red)
        Dim st As String = x & " " & y
        Dim f As Font = New Font("Arial", 12, FontStyle.Bold)
        graphArea.DrawString(st, f, sb, x, y)
    End Sub

End Class
emissionMedlem sedan dec. 19996 721 inlägg
#6

Dim info as new arvBox

VinnarenMedlem sedan sep. 2005833 inlägg
#7

tack, får nu detta felmeddelande under körning:
Objektreferensen har inte angetts till en instans av ett objekt.

på raden

info.ShowInfo(graphArea)

x(

VinnarenMedlem sedan sep. 2005833 inlägg
#8

ingen som vet/kan :q

emissionMedlem sedan dec. 19996 721 inlägg
#9

Du får nog visa mer komplett kod, för nu är det tillsnurrat.

PMedlem sedan jan. 20012 204 inlägg
#10

Vinnaren skrev:

Men nu får jag felmeddelandet:
'ShowInfo' is not a member of 'System.Array'.

Det meddelandet känns skumt. Var kommer Array ifrån...

VinnarenMedlem sedan sep. 2005833 inlägg
#11

Det löste sig. Hade glömt: info = New arvBox()

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)