在vb.net中将一张图片更改为另一张图片

本文关键字:一张 net vb | 更新日期: 2023-09-27 18:20:04

假设我有一个加载了图片的普通图片框,当用户点击它时,我如何在其中更改图片?

例如:一本书的剪贴画变成了海洋的剪贴画。

在vb.net中将一张图片更改为另一张图片

将图像保存在列表中,并通过指定列表中的索引来更改PictureBox的图像:

PictureBox:的简单示例

Public Class Form1
  Private _Images As New List(Of Image)
  Private _ImageIndex As Integer
  Public Sub New()
    InitializeComponent()
    For i As Integer = 1 To 3
      Dim bmp As New Bitmap(32, 32)
      Using g As Graphics = Graphics.FromImage(bmp)
        Select Case i
          Case 1 : g.Clear(Color.Blue)
          Case 2 : g.Clear(Color.Red)
          Case 3 : g.Clear(Color.Green)
        End Select
      End Using
      _Images.Add(bmp)
    Next
  End Sub
  Private Sub PictureBox1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PictureBox1.Click
    If _Images.Count > 0 Then
      PictureBox1.Image = _Images(_ImageIndex)
      _ImageIndex += 1
      If _ImageIndex > _Images.Count - 1 Then
        _ImageIndex = 0
      End If
    End If
  End Sub
End Class

这应该完成以下工作:

Dim OldImage As Image
Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click
    OldImage = PictureBox1.Image 'This will store the image before changing. Set this in Form1_Load() handler
    PictureBox1.Image = Image.FromFile("C:'xyz.jpg") 'Method 1 : This will load the image in memory
    PictureBox1.ImageLocation = "C:'xyz.jpg" 'Method 2 : This will load the image from the filesystem and other apps won't be able to edit/delete the image
    PictureBox1.Image = My.Resources.Image 'Method 3 : This will also load the image in memory from a resource in your appc
    PictureBox1.Image = OldImage 'Set the image again to the old one
End Sub