【问题标题】:Looping through pictures in picturebox and adding its name to combobox?遍历图片框中的图片并将其名称添加到组合框?
【发布时间】:2023-03-15 23:52:01
【问题描述】:

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

例如..这些名字

【问题讨论】:

    标签: vb.net loops combobox picturebox


    【解决方案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
    

    【讨论】:

    • 有没有办法在资源文件夹中指定一个文件夹?
    【解决方案2】:

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

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

    尽管如此,这仍然没有任何意义。似乎在加载Images 之前获取文件名会更有意义。不过,您的解释还不够充分,无法提供可靠的解决方案。

    【讨论】:

    • 您的更新没有任何价值。没有迹象表明您显示的名称列表与您描述的Images 之间的关系是什么。你没有解决我在回答中提出的任何问题。
    猜你喜欢
    • 2021-12-24
    • 2018-09-17
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多