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が一意である場合は、それを使用して2つをリンクできます。そうでない場合は、一意のキーとして使用できる他のプロパティが各アイテムに必要になります。次にできることは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 に答える