2015-11-02 83 views
0

所以我创建了这个循环来打印出一张地图。这很古老,我已经简化了代码中所称的图像 - 但实际上,对于每个坐标(X,Y)来说,创建一个包含相关图像的新图像框。For循环仅创建一个图像?

我试图创建一个pictureboxes数组,以便每个项目是唯一的,但它是相同的错误。

所以实际问题本身就是我每次只能看到一个图像(第一次迭代)。我已经检查过它是每次迭代的唯一(X,Y),并且它实际上是通过多次迭代运行 - 它就是这样。

因此,如果所有迭代都肯定被打印出来,而且它们绝对不在同一个位置,那究竟是什么问题呢?非常感谢。

For MapY As Integer = 0 To WorldParameter 'This parameter can be between 80 and 800, depending on settings. Is on 80 for testing. 
     For MapX As Integer = 0 To WorldParameter 
      Dim BaseTile As PictureBox = New PictureBox 
      BaseTile.Image = Image.FromFile("C:\Users\CLEO\Documents\Visual Studio 2015\Projects\Corruption\Corruption\mapimage\motorway.png") 
      BaseTile.Location = New Point(MapX * 10, MapY * 10) 'The image is 10x10; ergo the *10 increment 
      BaseTile.Visible = True 
      Me.Controls.Add(BaseTile) 
     Next 
    Next 

The Problem

+0

我没有调试的代码转储的气味。你检查过每个控件的大小吗?代码是否驻留在Form.Load方法中? –

+0

我不熟悉调试或控制大小。它在Button.click中。 –

+0

你不设置picturebox的宽度和高度 –

回答

1

你面对的盒相互重叠的问题。

设置一个明确的BaseTile.SizeNew Size(10, 10)(或者你想让你的PictureBox的对象变大)。

您也可以(替代地)手动设置WidthHeight,但这样做的乐趣不大。

+0

Spot!傻我。 –