Vb.net 一个图片框以相同形式多次显示

Vb.net 一个图片框以相同形式多次显示,vb.net,image,Vb.net,Image,我的目标是使用VB.net在VS中创建一个迷宫,我目前已经成功地制作了一个随机生成器,用于制作迷宫并显示最后制作的墙的位置 Horizontalwalls = Randomizer.Next(60, 91) 'Makes 60 - 90 Horizontal Walls VirticalWalls = Randomizer.Next(60, 91) 'Makes 60 -90 Vertical Walls Dim HLoops = 0 'counter for Horiz

我的目标是使用VB.net在VS中创建一个迷宫,我目前已经成功地制作了一个随机生成器,用于制作迷宫并显示最后制作的墙的位置

    Horizontalwalls = Randomizer.Next(60, 91) 'Makes 60 - 90 Horizontal Walls
    VirticalWalls = Randomizer.Next(60, 91) 'Makes 60 -90 Vertical Walls
    Dim HLoops = 0 'counter for Horizontal walls
    Dim VLoops = 0
    lbxHorizontal.Items.Clear() 'empties the list box i have which stores the walls location
    lbxvertical.Items.Clear()
    Do While HLoops < (Horizontalwalls)
        HLoops += 1 'adds to the counter
        lbxHorizontal.Items.Insert(0, Randomizer.Next(0, 10))
        lbxHorizontal.Items.Insert(0, Randomizer.Next(0, 10))

        'Attempt at making visable walls
        pbxhorizontalwall.Top = (lbxHorizontal.Items.Item(0) * GridSize - 2) 'This and next line puts the wall in desired location
        pbxhorizontalwall.Left = (lbxHorizontal.Items.Item(1) * GridSize - 2)
    Loop
然而,我所知道的使所有墙壁可见的唯一方法是制作90幅水平的墙壁图片,尽管将它们全部命名,然后是GLaaa。。。必须有一种更简单的方法将同一图像复制到所需位置的屏幕上


目前,我真正想知道的是复制图像的一行代码,也许是一种在迷宫重置时将它们全部清除的方法,然后我将研究如何将其放置到位

首先使用以下内容创建图像列表:

Dim imageList As New List(Of Bitmap)

imageList.Add("image to add") 'do it for all the images you have
然后创建位图:

Dim bitmapWall as Bitmap = New Bitmap(widthOfbitmap, heightofbitmap, Drawing.Imaging.PixelFormat.Format24bppRgb)
将图像列表绘制到bimap:

    Dim objGraphics As Graphics = Graphics.FromImage(bitmapWall)

    For i = 0 To imageList.Count
        objGraphics.DrawImage(imageList(i), x, y, imageList(i).Width, imageList(i).Height)
    Next

    objGraphics.Dispose()
x、 y是图像绘制位置的坐标,每次迭代时都应更改它们

最后:

Me.BackgroundImage = bitmapWall
Me.Invalidate()
最后别忘了处理列表和位图


瓦尔特

你想在表单上绘制图像吗?我已经编辑了你的标题。请看,如果共识是否定的,他们不应该这样做。你可以使用循环创建一个图片列表。你的瓷砖大小都一样吗?如果您可以创建一个与您需要覆盖的区域大小相同的图像,请将您的单个图像绘制到较大的图像,然后将其指定给窗体的背景图像属性(不一定在窗体上),但至少对玩家可见。。。虽然它们都是相同大小,但有60+个是随机生成的。。。如果有一种方法可以把它们画在一个图像上,并且在运行时用作背景,那么它的编码是什么呢?