0

我已经从学校设置了一个项目来在 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) 和其他方式添加对象的新实例,但被卡住了。当需要新的控件时,将调用该子程序。

4

1 回答 1

0

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

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

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

于 2012-06-23T11:35:21.120 回答