2012-06-23 66 views
0

我已经在学校设置了一个项目来设计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 

我一直在使用体(i)和其他方式尝试添加对象的新实例但被卡住了。 当需要新控件时,子程序将被调用。

回答

0

我想这是因为我通过创建对象

你实际上并没有创建一个新的实例任何地方的新实例覆盖以前的一个,你的代码永远只能创建一个实例的Dot并修改单个实例在AddToSnake中的位置。为了解决该问题,请在AddToSnake内部创建Dot的新实例。

也就是说,用户控件并不是正确的方法。你应该画一个PictureBox控制你的蛇身体,并保持身体List(Of Point)。然后,您可以简单地在列表的末尾添加新的点。

+0

谢谢你,我用你提到的第一部分和问题解决。我会尝试使用你提到的第二部分,但它并没有真正意义,所以我会实验:) –