webForumDet fria alternativet

Det nya objektet syns inte (VB.NET)

.NET

4 svar · 238 visningar · startad av Torwald

Medlem sedan nov. 20044 inlägg
Frågan#1

Jag försöker att kontinuerligt skapa nya TextBoxes, som en array. Det är en del av ett spel, där fiskar ska komma flytande ner från toppen.

Såhär ser koden ut för att skapa en fisk:

Public Function fish()

    Dim y As Integer
    Randomize()
    For y = 0 To 10
        x(y) = New PictureBox
        x(y).Top = Rnd(10) \* 10
        x(y).Left = Rnd(10) \* 10 + 224
        x(y).Width = 10
        x(y).Height = 10
        x(y).Visible = True
    Next

End Function

Sedan har jag en annan funktion för att flytta dem nedåt. Men de syns inte! Jag får inga bilderrors eller något, men ingenting syns.
Hur ska man göra?

EDIT:
Detta är koden för att flytta dem:
Public Function movefish()
Dim i = 1

    For i = 0 To 10
        x(i).Top = x(i).Top + Rnd(10) \* 10 + 15
        i = i + 1
    Next

End Function

Denna styrs av en timer.

Medlem sedan apr. 2004778 inlägg
#2

När du skapar din PictureBox så måste du väl adda den till sidan sen?
Som det är nu så skapar du en PictureBox, ger den lite värden och sen gör du inget med den utan skapar nästa.

Medlem sedan nov. 20044 inlägg
#3

Oj, tack för hjälpen! Nu kanske du förstår att jag är lite ny på det här, jag läser Visual Basic i skolan. Jag vet inte hur man addar det till sidan, hur går man till väga? Jag har bara funderat ut en idé, sedan är väl uppgiften att man ska arbeta fram en lösning själv (läraren klarade inte av att lösa det, kanske dåligt).

Mycket tacksam för svar!

Medlem sedan maj 20012 812 inlägg
#4

Allt är objekt i .NET. Alltså är din WinForm ett objekt och detta objekt kan addas andra objekt (kontroller).

I C# hade det sett ut så här

this.Controls.Add(new Control());

Här skapar jag en ny kontrol och läggar den till den kontrol som jag befinner mig i.

Om du har VS.NET som utvecklingsmiljön så finns dels hjälpen som är mycket bra, men framförallt så finns Intellisens. Du skriver bara this och trycker på punkt och vips så får du en lista med alla de methoder och egenskaper som du kan accessa på objektet, där får man mycket hjälp med vad man kan göra med objektet.

- M

Medlem sedan nov. 20044 inlägg
#5

Hej!
Jag var inne på det där spåret, men jag hade svårt att hitta en rad med kod som faktiskt gjorde något ;)
Jag diskuterade problemet med en klasskompis, han sa också att det hade med controllers att göra.
Jag ska försöka göra som du sa, tack för hjälpen!
Kan ju återkomma om jag löser det (eller inte löser det?) :P

/Tommy

269 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)