2012-06-23 64 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

謝謝你,我用你提到的第一部分和問題解決。我會嘗試使用你提到的第二部分,但它並沒有真正意義,所以我會實驗:) –