0

因此,以下代码为已输入到列表框中的每个项目添加一个图片框。

    Dim x As Integer = 790
    Dim y As Integer = 91
    For i As Integer = 0 To ListBox1.Items.Count - 1

        'adds picturebox for as many listbox items added
        Dim MyPictureBox As New PictureBox()
        MyPictureBox.Location = New Point(x, y)
        MyPictureBox.Size = New Size(12, 12)
        MyPictureBox.SizeMode = PictureBoxSizeMode.StretchImage
        Me.Controls.Add(MyPictureBox)
        MyPictureBox.Image = My.Resources.Warning1
        x += 0
        y += 13

    Next i

我正在运行另一个进程,它将为列表框中的每个项目创建一个文件,并为每个项目命名该文件。

示例:我在列表框中添加了 20 个项目,我将拥有 20 个图片框。如果我想删除说第 15 项,我还想删除它旁边的图片框。

这可以做到吗?

4

1 回答 1

1

如果项目的文本ListBox是唯一的,那么您可以使用它将两者链接在一起,否则,您将需要每个项目上的一些其他属性可以用作唯一键。然后您可以做的是将Name每个PictureBox控件的属性设置为列表中匹配项的唯一键值。例如:

Dim key As String = ListBoxItems(i).ToString()
...
MyPictureBox.Name = "pic" + key

然后,当您想要获取PictureBox给定项目的匹配控件时,您可以执行以下操作:

Dim p As PictureBox = CType(Me.Controls("pic" + item.ToString()), PictureBox)

(其中item的项目在哪里ListBox)要删除它,您只需执行以下操作:

Me.Controls.Remove(p)
p.Dispose()
于 2012-09-14T14:50:58.993 回答