2016-01-24 1 views
2

В настоящее время у меня проблема с моей программой. Я хочу создать фотогалерею для моей подруги, которую она может установить на свой компьютер. Я хочу импортировать изображения из папки на загрузке формы и отображать их в PictureBox.Загрузка изображений из папки [VB.NET]

Когда я загружаю форму, я получаю большой красный «X», который заполняет поле. Похоже на draw.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

Итерация через список, подобный этому, в любом случае покажет вам последнее изображение, поэтому весь цикл бессмыслен. Кроме того, вы удаляете изображение сразу после его загрузки, как указал в своем ответе Чейз Рокер. – Jens

ответ

3

После выхода из Using блока, вы теряете ссылку изображения.

Попробуйте изменить

PicPig.Image = image 

в

PicPig.Image = image.clone 

или просто установить его на изображение из файла:

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

Кроме того, потому что вы делаете это в Для loop, он просто заменит изображение с изображением, когда оно будет проходить. Когда он закончит цикл, на картинке появится только последнее изображение.

 Смежные вопросы

  • Нет связанных вопросов^_^