我已经从学校设置了一个项目来设计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)和其他方法来添加对象的新实例但是卡住了。 当需要新控件时,将调用子程序。
答案 0 :(得分:0)
我认为这是因为我通过创建对象的新实例来覆盖前一个
您实际上并未在任何地方创建新实例,您的代码只会创建Dot
的单个实例,并在AddToSnake
中修改单个实例的位置。为了解决此问题,请在Dot
内创建AddToSnake
的新实例。
也就是说,用户控件不是正确的方法。你应该在PictureBox
控制上画你的蛇体,并将身体保持为List(Of Point)
。然后,您只需在列表末尾添加新点即可。