PictureBox初始图像

时间:2018-02-09 23:34:00

标签: vb.net winforms

有没有办法在加载时将所有picbox设置为初始图像?例如:当你开始一轮时,所有图像都被设置为面朝下的卡片图像,然后当一轮开始时它会显示一个图像。 编辑:如何清除PicCard.Image中的内容?

Public Class Form1
Private Cards As New List(Of PictureBox)
Private randomnumber As Integer
Private HowManyCards As Integer

Private Sub SetupCards(numberofcards As Integer)
    ClearGame()
    For i As Integer = 0 To numberofcards

        Dim PicCard As PictureBox = New PictureBox()
        PicCard.Width = 100
        PicCard.Height = 200
        PicCard.Top = 50
        PicCard.Left = 50 + PicCard.Width * i
        Me.Controls.Add(PicCard)
        PicCard.Image = imglistBackOfCard.Images(0)


    Next i
End Sub

Private Sub ClearGame()
    If Cards.Count > 0 Then
        For i As Integer = 0 To Cards.Count - 1
            Me.Controls.Remove(Cards(i))
        Next
    End If
    ' Clear the cards if they were already setup from a previous game.
    Cards.Clear()
End Sub

Private Sub RandomCard()
    Randomize()
    randomnumber = Int(Rnd() * imglist1.Images.Count - 1) + 1
End Sub

Public Sub ShowCards(numberofcards As Integer)


    For i As Integer = 0 To numberofcards

        Dim PicCard As PictureBox = New PictureBox()
        RandomCard()
        PicCard.Width = 100
        PicCard.Height = 200
        PicCard.Top = 50
        PicCard.Left = 50 + PicCard.Width * i
        Me.Controls.Add(PicCard)
        PicCard.Image = imglist1.Images(randomnumber)
        PicCard.Tag = randomnumber

        AddHandler PicCard.Click, AddressOf Me.cardflip_click
        Cards.Add(PicCard)

    Next i
End Sub


Private Sub StartGame_Click(sender As Object, e As EventArgs) Handles btnStartGame.Click

    ShowCards(HowManyCards - 1)
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    HowManyCards = InputBox("How Many Cards?", "Please Enter")
    SetupCards(Int(howmanycards - 1))
End Sub
End Class

0 个答案:

没有答案