0

私はVB.Netでヘビをデザインするために学校からプロジェクトを設定しましたが、ヘビの本体のドットの1つとして機能するユーザーコントロールを動的に追加するのに苦労しています。ヘビにドットを追加するたびに、以前のものが消えます。これは、オブジェクトの新しいインスタンスを作成して以前のものを上書きしたためだと思いますが、新しいインスタンスを追加する方法が見つかりません。

    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です。Dotこの問題を解決するには、 insideの新しいインスタンスを作成しますAddToSnake

とはいえ、とにかく、ユーザー コントロールはこれに対する正しい方法ではありません。コントロールにヘビの体をペイントPictureBoxし、体を aa として維持する必要がありますList(Of Point)。次に、リストの最後に新しいポイントを追加するだけです。

于 2012-06-23T11:35:21.120 に答える