因此,以下代码为已输入列表框的每个项目添加了一个图片框。
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项,我还想删除旁边的图片框。
可以这样做吗?
答案 0 :(得分: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()