For循环仅创建一个图像?
问题描述:
所以我创建了这个循环来打印出一张地图。这很古老,我已经简化了代码中所称的图像 - 但实际上,对于每个坐标(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
答
你面对的盒相互重叠的问题。
设置一个明确的BaseTile.Size
的New Size(10, 10)
(或者你想让你的PictureBox
的对象变大)。
您也可以(替代地)手动设置Width
和Height
,但这样做的乐趣不大。
+0
Spot!傻我。 –
我没有调试的代码转储的气味。你检查过每个控件的大小吗?代码是否驻留在Form.Load方法中? –
我不熟悉调试或控制大小。它在Button.click中。 –
你不设置picturebox的宽度和高度 –