2016-01-24 152 views
2

我目前遇到我的程序出现问题。我想为我的女朋友创建一个照片库,她可以在她的电脑上安装。我想从Form加载的文件夹中导入图像并将它们显示在PictureBox中。从文件夹中加载图像[VB.NET]

当我加载表单时,我得到一个大红色的'X',填满了框。看起来像drawing.bitmap ErrorImage。可能是什么问题呢?任何帮助是极大的赞赏。谢谢。

Private Sub Pigge_Gallary_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim directory As New IO.DirectoryInfo("C:\Pics\Bears") 
    If directory.Exists Then 
     Dim jpgFiles() As IO.FileInfo = directory.GetFiles("*.jpg") 
     For Each jpgFile As IO.FileInfo In jpgFiles 
      If jpgFile.Exists Then 
       Dim image = Drawing.Image.FromFile(jpgFile.FullName) 
       Using image 
        PicPig.Image = image 
       End Using 
      End If 
     Next 
    End If 
End Sub 
+0

像这样遍历列表只会显示最后一张图片,所以整个循环都是毫无意义的。此外,你正在加载后立即处理图像,正如Chase Rocker在他的回答中指出的那样。 – Jens

回答

3

一旦您退出Using块,就会丢失图像参考。

尝试改变

PicPig.Image = image 

PicPig.Image = image.clone 

,或只是将其设置为从文件中的图像:

PicPig.Image = Drawing.Image.FromFile(jpgFile.FullName) 

而且,因为你这样做是在为循环,它只是在循环时替换picturebox图像。当它完成循环时,图片框将只显示最后一张图片。

相关问题