Pictureboxen verwijderen/leeghalen

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Hallo,

In het programma kan men albums aanmaken en daarin foto'splaatsen. Dit is op zich geen probleem. Vervolgens kan men deze albums inzien. Eerst wordt de lijst met namen van de fotoboeken ingelezen in een combobox als volgt:
Code:
 Private Sub Raadplegen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   Dim dir_info As New DirectoryInfo(CurDir() & "\fotoboeken")
        Dim subdirs() As DirectoryInfo = dir_info.GetDirectories()
        For Each subdir As DirectoryInfo In subdirs
            OpenEenAlbumToolStripMenuItem.Items.Add(subdir)
        Next subdir
    End Sub
Vervolgens worden de fotoos in een listbox opgeroepen:
Code:
 Private Sub OpenEenAlbumToolStripMenuItem_SelectedIndexChanged(sender As Object, e As EventArgs) Handles OpenEenAlbumToolStripMenuItem.SelectedIndexChanged
        TextBox1.Text = OpenEenAlbumToolStripMenuItem.Text
        For Each foundFile As String In My.Computer.FileSystem.GetFiles(CurDir() & "\fotoboeken\" & TextBox1.Text & "\")
            ListBox1.Items.Add(foundFile)
        Next
        inladen()
    End Sub
Hierna de formulier raadplegen op always scroll
De foto's worden dan als volgt ingeladen:
Code:
    Sub inladen()
        Dim hoeveel = ListBox1.Items.Count
        Dim y = 55
        Dim x = 20
        Dim z = 0
        Dim taggen = 0
        For i As Integer = 0 To hoeveel - 1
            Dim pic As New PictureBox
            pic.Size = New Size(450, 400)
            pic.Location = New Point(x, y)
            Me.Controls.Add(pic)
            ListBox1.SelectedIndex = z
            pic.BackColor = Color.Tan
            pic.Tag = taggen
            pic.Text = (ListBox1.SelectedItem)
            pic.Image = Image.FromFile(ListBox1.SelectedItem)
            pic.SizeMode = PictureBoxSizeMode.Zoom
            x = x + 485
            z = z + 1
            If x > 1030 Then
                x = 20
                y = y + 415
            End If
            taggen = taggen + 1
        Next
    End Sub

Tot hier loopt het programma prima. Vervolgens een nieuw album oproepen.
De listbox met foto's wordt leegehaal;t alsmede de pictureboxen.
Code:
  ListBox1.Items.Clear()
        OpenEenAlbumToolStripMenuItem.Items.Clear()
        TextBox1.Text = ""
        Dim dir_info As New DirectoryInfo(CurDir() & "\fotoboeken")
        Dim subdirs() As DirectoryInfo = dir_info.GetDirectories()
        For Each subdir As DirectoryInfo In subdirs
            OpenEenAlbumToolStripMenuItem.Items.Add(subdir)
        Next subdir

Nu heb ik op verschillende manieren geprobeerd de pictureboxen te laten verwijderen, hetgeen niet lukt. Ik heb dit gedaan door"
for each cont in me.controls
enz....
doch dit lukt niet. Of de foto's worden aangevuld of de foto komen onde de bestaande foto'ste liggen. Dus eigenlijk is mijn vraag hoe wordt het formulier leegehaald.
 
Hoi bonnowagt

Deze code heb ik wel eens gebruikt om panels weg te halen. Je moet het alleen even omzetten naar picturebox. Ik geef er wel een waarschuwing bij. Ik ook gehad dat die toch niet alles weghaalde. Dus misschien de code een aantal keer draaien voor de zekerheid als je niet van te voren weet hoeveel pictureboxes er maximaal zijn.
Code:
For Each Checkcontrol In Me.Controls
            If (Checkcontrol.GetType() Is GetType(Panel)) Then
                Dim p As Panel = CType(Checkcontrol, Panel)
                Me.Controls.Remove(p)
            End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan