【问题标题】:Allow user to upload picture in Visual Basic允许用户在 Visual Basic 中上传图片
【发布时间】:2014-02-04 14:44:52
【问题描述】:

我是 Visual Basic 的新手,所以请保持温和。 :P

我正在创建一个小型应用程序,用于基本学习目的,它允许应用程序的用户更新各种配置文件。这包括上传个人资料图片,然后将其存储在 /bin/Debug/Resource 中,然后在 PictureBox 的个人资料中显示。

我正在使用以下代码,它似乎就是这样做的。但是,当我关闭应用程序并再次运行它时,图像不会显示在任一 PictureBox 上,但仍存储在指定文件夹中。

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

    If (Not System.IO.Directory.Exists("Resource")) Then
        System.IO.Directory.CreateDirectory("Resource")
    End If


    Dim OpenFileDialog1 As New OpenFileDialog
    With OpenFileDialog1
        .CheckFileExists = True
        .ShowReadOnly = False
        .Filter = "All Files|*.*|Bitmap Files (*)|*.bmp;*.gif;*.jpg"
        .FilterIndex = 2

        '
        If .ShowDialog = DialogResult.OK Then
            Dim FName() As String = OpenFileDialog1.FileName.Split("\\")
            System.IO.File.Copy(OpenFileDialog1.FileName, "Resource\\" + FName(FName.Length - 1))
            PictureBox1.Image = Image.FromFile(.FileName)
            Profile.PictureBox1.Image = Image.FromFile(.FileName)
        End If
    End With
End Sub        

非常感谢您提供的任何帮助。

谢谢。

【问题讨论】:

  • 您需要使用LoadPicture将图片加载到框中。 imgMyPic.Picture = LoadPicture("C:\SomeDirectory\SomeSubDir\MyPic.bmp")
  • 我试过:imgMyPic.Picture = LoadPicture("C:\SomeDirectory\SomeSubDir\MyPic.bmp") 但它显示以下错误:图片不是System.Windows.Form的成员。未声明 PictureBox 的 LoadPicture。由于其保护级别,它可能无法访问'
  • 图像不会自动存储(或重新加载),因此您必须在表单加载时再次重新加载图像(从文件中)。
  • 那应该是.Image 而不是.Picture 类似imgMyPic.Image = LoadPicture("C:\SomeDirectory\SomeSubDir\MyPic.bmp")
  • @MattWilko 这之前被标记为 VBA 而不是 VB .NET

标签: vb.net image upload save


【解决方案1】:

这是显示图片所需的操作。

必须将此代码添加到加载表单方法中。

Dim StoredPath As String = "PathToImage"
IF File.Exists(StoredPath) Then
   PictureBox1.Image = Image.FromFile(@StoredPath)
   PictureBox1.Refresh()
End if

【讨论】:

  • 你在 OpenFileDialog1.FileName 中得到了什么?我创建了一个sscce
  • 我没有得到任何不同。显示图像,但当我关闭应用程序并再次打开时,图像消失了。
  • @user3271273 应用程序不会将图像存储在图片框中。退出应用程序后,图像就消失了。改变这种行为的方法是有一个启动例程,它将图像分配给图片框并刷新它。
  • 是的,我明白这一点。到目前为止,我所拥有的是正在上传到 /bin/Debug/Resource 的图像。所以我要做的是每次应用程序加载时,都会显示最后显示的图像。
猜你喜欢
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 2017-12-06
  • 2015-08-11
  • 1970-01-01
  • 2017-05-21
  • 2021-11-15
  • 2013-10-25
相关资源
最近更新 更多