Zufallsposition in Windows Form

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    Zufallsposition in Windows Form

    Hey!
    Ich habe in Visual Basic ein Spiel programmiert. Mit so Pac-Mans, die Punkte fressen. Nun möchte ich aber, dass diese Punkte (PictureBox mit Rotem Kreis Bild) sich nicht in jedem Spiel an der gleichen Position befinden. Hier mein Quelltext bis jetzt:

    Quellcode

    1. Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Dim Zufall As New System.Random
    3. PictureBox2.Location = Zufall
    4. End Sub

    Das funktioniert aber nicht (Was ein Wunder :P !).
    Was muss ich also machen?
    ich möchte auch, dass sich die PictureBoxen nich aus der Form herausbewegen, weil man kann bei mi den Hintergrung nicht scrollen!
    Formgröße: 1791; 772
    Da fehlt was :)

    Dim Zufall As New System.Random
    PictureBox2.Location = Zufall.next(zahl1,zahl2)

    ... Oder so Ähnlich.
    Hätte man auch easy googlen können ;)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @jo.pomm Willkommen im Forum. :thumbup:
    Die x-Position kann dann im Bereich von 0 bis Breite ClientRect der Form - Breite der PictureBox variieren,
    die y-Position im Bereich von 0 bis Höhe ClientRect der Form - Höhe der PictureBox.

    VB.NET-Quellcode

    1. Dim valueX = Zufall.Next(MAX_VALUE_X)
    2. Dim valueY = Zufall.Next(MAX_VALUE_Y)
    3. PictureBox2.Location = New Point(valueX, valueY)

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja richtig, das geht so nicht. Du brauchst ne X und ne Y Koordinate. Entweder verwendest du dafür nen Point oder die X/Y Eigenschaft von Location.

    PictureBox2.Location.X = Zahl1
    PictureBox2.Location.Y = Zahl1
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen