سؤال

So I have written a short section of code to add 6 pictureboxes to a form in random locations. It adds each picturebox to a collection, then loops through the collection and adds them to the form control. The bizarre issue is that the code only works when I step through it line by line in debug mode. If I just compile and run the code then only 1 picturebox is added to the form, but if I step through the code line by line then all 6 pictureboxes are successfully added to the form in random locations. Can anyone tell me why the hell this happening? It's driving me pretty nuts. Code below:

    For i As Integer = 0 To 5
        Dim pic As New PictureBox
        Dim rnd As New Random
        pic.Location = New Point(rnd.Next(200, 300), rnd.Next(200, 300))
        pic.Size = New Size(5, 5)
        pic.BackColor = Color.White
        pic.Visible = True
        pic.BringToFront()
        _picCollection.Add(pic)
    Next

    For Each item As PictureBox In _picCollection
        Controls.Add(item)
    Next

    ShowDialog()

Open to suggestions of how to do this better / in a way that actually works properly.

هل كانت مفيدة؟

المحلول

Had to declare RND object outside of loop. Thanks tinstaafl!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top