动态添加用户控件VB.Net的问题

时间:2012-06-23 11:31:25

标签: vb.net user-controls

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

1 个答案:

答案 0 :(得分:0)

  

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

您实际上并未在任何地方创建新实例,您的代码只会创建Dot的单个实例,并在AddToSnake中修改单个实例的位置。为了解决此问题,请在Dot内创建AddToSnake的新实例。

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