循环浏览图片框中的图片并将其名称添加到组合框?

时间:2019-06-15 10:31:38

标签: vb.net loops combobox picturebox

我在图片框中大约有20张图片,我想遍历所有图片并将其名称添加到组合框中,然后使用组合框更改图片框中的图片。我不知道如何循环浏览图片框图像。

例如..这些名称 enter image description here

2 个答案:

答案 0 :(得分:1)

要使用来自资源的图像填充组合框:

   For Each dicEntry As DictionaryEntry In resourceSet.OfType(Of Object)()
        If TypeOf (dicEntry.Value) Is Drawing.Image Then
            ComboBox1.Items.Add(dicEntry.Key.ToString())              
        End If
   Next

要选择图像并将其设置为PictureBox:

 Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
     Dim comboBox As ComboBox = CType(sender, ComboBox)
     Dim sSelectedItem = CType(comboBox.SelectedItem, String)
     Dim img As Image = CType(My.Resources.ResourceManager.GetObject(sSelectedItem), Image)
     PictureBox1.BackgroundImage = img
 End Sub

答案 1 :(得分:0)

这里有几件事要解决。最重要的是,Image对象没有名称,因此没有要列出的内容。也许您是指创建Image对象的文件的名称,但这有所不同。除非您设置PictureBox属性来加载文件,否则您将无法从ImageLocation控件中获取这些文件。假设您已这样做,则可以像这样从PictureBoxes获取每个文件的名称:

Dim fileNames = Controls.OfType(Of PictureBox)().
                         Select(Function(pb) IO.Path.GetFileName(pb.ImageLocation))

那仍然没有任何意义。似乎在加载Images之前获取文件名会更有意义。不过,您还没有真正解释足以提供一个自信的解决方案。