Как добавить элементы управления из другого класса в форму VB. net? - PullRequest
0 голосов
/ 03 февраля 2020

Как добавить элемент управления из другого класса в основную форму? Я пробовал разные подходы: либо добавление элемента управления внутри его класса, либо добавление его в функцию внутри основного класса формы. Вот мой фактический код:

Public Class Game
    Private Sub Play_bp_Click(sender As Object, e As EventArgs) Handles Play_bp.Click
        Me.main_panel.Hide()
        Dim joueur = New Player()
        Me.game_panel.Controls.Add(joueur.Image)
        Me.game_panel.Show()
        joueur.Image.Show()
    End Sub

    Private Sub Quit_bp_Click(sender As Object, e As EventArgs) Handles Quit_bp.Click
        Me.Close()
    End Sub
End Class

Public Class Player
#Region "Player Attribute"
    Public m_speed As Integer
    Public m_image As PictureBox
    Public m_munition As UInteger
    Public m_life As UInteger
    Public m_position As Point
#Region "Player Functions"
    Public Sub New()
        Me.m_life = 3
        Me.m_munition = 10
        Me.m_position = New Point(100, 200)
        Me.m_image = New PictureBox
        Me.m_image.Image = My.Resources.player
        Me.m_image.Location = Me.m_position 
    End Sub

    Public Sub Fire()
        If me_munition> 0 Then

        End If
    End Sub

    Public Sub Move(decalage As Integer)
        If decalage < 0 Then 'Décalage vers la gauche
            'Si on peut bouger vers la gauche
            If (Me.me_position.X + decalage) > 0 Then
                Me.me_position= New Point(Me.me_position.X + decalage, Me.me_position.Y)
            End If
        ElseIf decalage > 0 Then 'Décalage vers la droite
            'Si on peut bouger vers la droite
            If (Me.me_position.X + decalage) < Game.Width Then
                Me.me_position= New Point(Me.me_position.X + decalage, Me.me_position.Y)
            End If
        End If
        Me.Image().Location= Me.me_position
    End Sub
#End Region
End Class

edit: я пытался отобразить изображение внутри кода пользовательского интерфейса, но оно тоже не работает. Я все еще получаю черное окно без моей картинки:

Private Sub Play_bp_Click(sender As Object, e As EventArgs) Handles Play_bp.Click
        Me.main_panel.Hide()
        Me.vue_actuelle = Vues.Game

        Dim Player_picture = New PictureBox
        Player_picture.Size = New Size(My.Resources.player_mini.Width, My.Resources.player_mini.Height)
        Player_picture.Image = My.Resources.player_mini
        Player_picture.Location = New Point(100, 200)

        Me.game_panel.Controls.Add(Player_picture)
        Me.game_panel.Show()
End Sub
...