簡體   English   中英

我們如何在VB.net的圖片框中顯示上一張圖片?

[英]How do we show the previous image in a picturebox in VB.net?

我將圖像存儲在數組中,之后,添加了一個if語句來檢查當前顯示的圖像,這是到目前為止的代碼,但沒有結果。

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
        Dim img(3) As Image
        img(0) = My.Resources.bugs
        img(1) = My.Resources.discuss
        img(2) = My.Resources.flower
        img(3) = My.Resources.mask
        If PictureBox1.Image Is img(0) Then
            PictureBox1.Image = img(3)
        End If
    End Sub

您的代碼存在嚴重問題。 您不應該My.Resources遍地訪問My.Resources的相同屬性。 那是因為它每次都提取數據並創建一個新對象,因此,每當用戶單擊那個Button時,您將創建四個新的Image對象。 您應該提取資源並僅填充一次陣列。

這就是您的If語句不起作用的原因。 即使它們是從相同的資源創建的, PictureBox當前的Image對象也與數組中的對象不同。

您應該將當前圖像的索引存儲在一個字段中,然后,每次要轉到下一張圖像時,只需增加該字段並獲得該索引處的Image 您可以使用Mod來包裝在數組的末尾。

Private images As Image() = {My.Resources.bugs,
                             My.Resources.discuss,
                             My.Resources.flower,
                             My.Resources.mask}
Private imageIndex As Integer = 0

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    PictureBox1.Image = images(imageIndex)
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    imageIndex = (imageIndex + 1) Mod images.Length
    PictureBox1.Image = images(imageIndex)
End Sub

我想念你說的是“上一個”而不是“下一個”。 這將適用於:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    imageIndex -= 1

    If imageIndex < 0 Then
        imageIndex = images.GetUpperBound(0)
    End If

    PictureBox1.Image = images(imageIndex)
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM