动态添加用户控件 VB.Net 时出现问题



>我已经从学校设置了一个项目来设计蛇 VB.Net 但我正在努力动态添加用户控件,该控件充当蛇体内的点之一。每次我在蛇上加一个点,以前的就消失了。我认为这是由于我通过创建对象的新实例来覆盖前一个,但我找不到添加新实例的方法。

    Dim body As New Dot
    Sub AddToSnake(ByVal i As Integer)
            'add 1 dot on to the back of the snake
            body.Location = New Point(50 + i, 50)
            body.Visible = True
            Me.Controls.Add(body)
         End Sub

我尝试使用 body(i) 和其他方法来添加对象的新实例,但卡住了。当需要新控件时,将调用子例程。

我认为这是由于我通过创建对象的新实例来覆盖前一个

您实际上并没有在任何地方创建新实例,您的代码只会创建Dot的单个实例并修改单个实例在AddToSnake中的位置。为了克服这个问题,请在AddToSnake中创建一个新的Dot实例。

也就是说,用户控件无论如何都不是正确的方法。您应该将蛇体绘制在PictureBox控件上,并将身体维护为List(Of Point)。然后,您只需在列表末尾添加新点即可。

最新更新