0

授業でボードゲームを作っています。ボードでは、2D 配列を実行するネストされた For ループをいくつか使用して、各正方形で「スペース」オブジェクトを生成しています。

Space オブジェクトには、ピクチャボックスとそのスペースに関するいくつかのデータが含まれています。

生成されたピクチャ ボックスをクリックすることによって発生するイベントを、スペースごとにハードコードせずに処理するにはどうすればよいですか?

この質問はこれに対処しているように見えますが、C# にあり、VB.Net に変換できませんでした。

編集:これがボードの生成方法です

 Dim board(23, 24) As Space

 Private Sub GenerateBoard()

    Dim spaceSize As New Size(30, 30)
    Dim spaceLocation As New Point
    Dim validity As Boolean

    For Y = 0 To 24
        For X = 0 To 23
            spaceLocation.X = 6 + (31 * X)
            spaceLocation.Y = 6 + (31 * Y)

            If validSpaces(Y).Contains(X + 1) Then
                validity = True
            Else
                validity = False
            End If

            board(X, Y) = New Space(validity, spaceSize, spaceLocation)
            Me.Controls.Add(board(X, Y).imageBox)
            board(X, Y).imageBox.BackColor = Color.Transparent
            board(X, Y).imageBox.BringToFront()
        Next
    Next
End Sub

宇宙クラス:

Public Class Space

Dim _active As Boolean
Dim _imageBox As PictureBox

Public Sub New(ByVal activeInput As Boolean, ByVal size As Size, ByVal location As Point)
    _active = activeInput
    _imageBox = New PictureBox
    With _imageBox
        .Size = size
        .Location = location
        .Visible = False
    End With
End Sub

Property active As Boolean
    Get
        Return _active
    End Get
    Set(value As Boolean)
        _active = value
    End Set
End Property

Property imageBox As PictureBox
    Get
        Return _imageBox
    End Get
    Set(value As PictureBox)
        _imageBox = value
    End Set
End Property

Public Sub highlight()
    With _imageBox
        .Image = My.Resources.Highlighted_slab
        .Visible = True
    End With
End Sub
End Class
4

1 に答える 1