Member 11856456 Ответов: 1

Как удалить все графические поля, добавленные в panel1. controls


Итак, я могу сделать почти то же самое, что и в программе, проблема, с которой я сталкиваюсь, заключается в том, что когда я выбираю новую строку, она добавляет изображения вместе со старой. Если я добавлю оператор Me.panel1.controls.clear, он удалит изображение, но оставит пустые места. Я пытаюсь показать только те картинки, которые связаны с выбранным мной рядом.

Вот код, с которым я работаю:

Private Sub Gridview_selectedIndexchenge(ByVal sender As Object, ByVal e As EventArgs) Handles DataGridView1.MouseClick

        For Each DGRS As DataGridViewRow In DataGridView1.SelectedRows

            Dim I As Integer = 0
            I = DataGridView1.SelectedRows(0).Index

            Dim IC As Integer = 0
            IC = DataGridView1.Columns(0).Index

            If DGRS.Selected = True Then

                Dim rowpic = (DataGridView1.Rows(I).Cells(0).Value)

                PictureBox1.Image = rowpic
                PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
                DGRS.Dispose()

            End If
        Next

        For Each Imgdgvi As DataGridViewImageCell In DataGridView1.SelectedCells

            Dim pic As New PictureBox()
            pic.Image = Imgdgvi.Value
            pic.SizeMode = PictureBoxSizeMode.StretchImage

            pic.SetBounds(wid, 20, 200, 100)
            ' pic.Location = New Point(10, pic.Height)
            AddHandler pic.Click, AddressOf convertPic
            Me.Panel1.Controls.Add(pic)
            wid += 205
        Next



    End Sub


Может ли кто-нибудь помочь мне с простым способом удалить старое и добавить новое через ряд select?

Что я уже пробовал:

Я пытался установить для каждого img В качестве элемента управления PictureBox в панель1.управление потом помощью удалить заявление, что не работает. Я попробовал очевидный me.panel1.controls.clear, но он оставляет пустые места.

1 Ответов

Рейтинг:
12

kosmas kafataridis

Попробовать это

Private Sub Gridview_selectedIndexchenge(ByVal sender As Object, ByVal e As EventArgs) Handles DataGridView1.MouseClick
        me.panel1.controls.clear()
        wid = 0 
        For Each DGRS As DataGridViewRow In DataGridView1.SelectedRows
 
            Dim I As Integer = 0
            I = DataGridView1.SelectedRows(0).Index
 
            Dim IC As Integer = 0
            IC = DataGridView1.Columns(0).Index
 
            If DGRS.Selected = True Then
 
                Dim rowpic = (DataGridView1.Rows(I).Cells(0).Value)
 
                PictureBox1.Image = rowpic
                PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
                DGRS.Dispose()
 
            End If
        Next
 
        For Each Imgdgvi As DataGridViewImageCell In DataGridView1.SelectedCells
 
            Dim pic As New PictureBox()
            pic.Image = Imgdgvi.Value
            pic.SizeMode = PictureBoxSizeMode.StretchImage
 
            pic.SetBounds(wid, 20, 200, 100)
            ' pic.Location = New Point(10, pic.Height)
            AddHandler pic.Click, AddressOf convertPic
            Me.Panel1.Controls.Add(pic)
            wid += 205
        Next
 

 
    End Sub


Member 11856456

Спасибо, работает как заклинание!

kosmas kafataridis

НП