2012-01-12 32 views
1

我正在尝试创建一个程序来检查是否有人要进入欢乐时光。如果不是,则列出那些不是的人,并将他们的照片放在他们的名字旁边。从文件中获取图像并将它们添加到阵列

我能够实现所有,但本地获取图像,并将它们存储在一个数组(它将被添加到pictureArray(i))。

(你可以看到注释掉的部分在哪里,我试图让图像...)

任何想法?

Public Class Form1 
Dim ITLPList() As String = {"Name 1", "Name 2", "Name 3", "Name 4", "Name 5", "Name 6"} 
' Dim imageList As New ImageList 
' Dim fileSteam As New System.IO.FileStream(sFileName, System.IO.FileMode.Open) 
' Dim img As Image 
' Dim sFileName As String = "C:\Users\turcotd\Desktop\ITLPers\itlp1.jpg" 

Dim itlpTally() As String 
Dim labelArray(5) As Label 
Dim pictureArray(5) As PictureBox 

Dim intTally As Integer 
Dim i As Integer = 0 

Public itlpIndex As Integer = 0 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    itlpName.Text = ITLPList(0) 
    labelArray(0) = lblPerson0 
    labelArray(1) = lblPerson1 
    labelArray(2) = lblPerson2 
    labelArray(3) = lblPerson3 
    labelArray(4) = lblPerson4 

    pictureArray(0) = picITLP0 
    pictureArray(1) = picITLP1 
    pictureArray(2) = picITLP2 
    pictureArray(3) = picITLP3 
    pictureArray(4) = picITLP4 

End Sub 

Private Sub btnYes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnYes.Click 

    If (i < 6) Then 
     itlpName.Text = ITLPList(i) 
     i = i + 1 

    End If 
End Sub 

Private Sub btnNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNo.Click 

    If (i < 6) Then 
     'Names 
     itlpName.Text = ITLPList(i) 
     intTally = intTally + 1 
     lblTally.Text = intTally 
     labelArray(i).Text = ITLPList(i) 

     'Images 
     ' img = Image.FromStream(fileSteam) 
     ' fileSteam.Close() 
     ' imageList.Images.Add(img) 
     ' pictureArray(i).Image = imageList.Images.Item(0) 
     ' img.Dispose() 

     ' img = Image.FromFile(sFileName) 

     i = i + 1 
    End If 
    itlpName.Text = ITLPList(i) 
End Sub 
End Class 

回答

0

你可以得到所有的JPG文件的目录FileInfo下列方式:

Dim dir = New IO.DirectoryInfo("C:\Users\turcotd\Desktop\ITLPers") 
Dim images = dir.GetFiles("*.jpg", IO.SearchOption.AllDirectories).ToList 
+0

你能否详细说明一下?这不适合我。你能解释一下如何将每个JPG文件从一个文件夹放到Image数组中?谢谢 – Growler 2012-01-16 04:29:37

+0

@Growler:那么你应该解释什么是不工作,你有任何错误?我已经向您展示了如何以List(Of FileInfo)的形式获取文件夹中的所有jpg文件。 [List(Of T)](http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)比Array更好,它甚至比[更好的ArrayList](http:// blog.drorhelper.com/2008/10/why-should-i-use-list-and-not-arraylist.html)。如果你坚持使用数组,你可以简单地调用'dir.GetFiles(“*。jpg”,IO.SearchOption.AllDirectories).ToArray'。 – 2012-01-16 08:02:51

+0

@Growler:查看[FileInfo-Class](http://msdn.microsoft.com/zh-cn/library/system.io.fileinfo.aspx)获取更多信息。例如,您需要调用[FileInfo.Name](http://msdn.microsoft.com/en-us/library/system.io.fileinfo.name)来获取图像名称(文件名无路径)或[FileInfo.FullName](http://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.fullname.aspx)获取完整路径。如果这没有帮助,你应该展示你的尝试。 – 2012-01-16 08:05:26

0

从文件加载文件到PictureBox是一个非常简单的操作:

picITLP0.Image = Image.FromFile("C:\Users\turcotd\Desktop\ITLPers\itlp1.jpg") 
相关问题