Remove Button Collection Panel

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • noaco
    New Member
    • Sep 2010
    • 1

    Remove Button Collection Panel

    hi,
    i have this button collection i add in run time and then remove, but for some reason it is not removed.

    Code:
     Private Sub Button_Click(ByVal sender As Object, ByVal e As  _
                                 System.EventArgs)
    
            ListBox2.Items.Add(CType(CType(sender,  _
              System.Windows.Forms.Button).Text, String))
            Dim stringa() As String = {"1", CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(0, 5), CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(6), "", CType(CType(sender, System.Windows.Forms.Button).Tag, String) + " €"}
            Dim item As New ListViewItem(stringa)
            ListView1.Items.Add(item)
    
            Try
    
                Dim CNT1 As Integer = 0
                Dim CNT2 As Integer = 0
                bottone1 = New Button(ListView1.Items.Count * 4) {}
                bottone2 = New ComboBox(ListView1.Items.Count) {}
    
                Dim X As Integer = ListView1.Location.X - 110
                Dim Y As Integer = ListView1.Location.Y + 25
    
                While CNT1 < ListView1.Items.Count * 4
    
    
                    bottone1(CNT1) = New Button
                    bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                    bottone1(CNT1).Size = New System.Drawing.Size(20, 20)
                    bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                    bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                    bottone1(CNT1).Text = "+"
                    bottone1(CNT1).Tag = CNT2
                    AddHandler bottone1(CNT1).Click, AddressOf bottoni
    
                    Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                    CNT1 += 1
                    X = X + 20
    
                    bottone1(CNT1) = New Button
                    bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                    bottone1(CNT1).Size = New System.Drawing.Size(20, 20)
                    bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                    bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                    bottone1(CNT1).Text = "-"
                    bottone1(CNT1).Tag = CNT2
                    AddHandler bottone1(CNT1).Click, AddressOf bottoni
    
                    Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                    CNT1 += 1
                    X = X + 20
    
                    bottone1(CNT1) = New Button
                    bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                    bottone1(CNT1).Size = New System.Drawing.Size(20, 20)
                    bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                    bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                    bottone1(CNT1).Text = "D"
                    'AddHandler bottone1(CNT).Click, AddressOf Button_Click
    
                    X = X + 20
    
                    bottone2(CNT2) = New ComboBox
                    bottone2(CNT2).Location = New System.Drawing.Point(X, Y)
                    bottone2(CNT2).Size = New System.Drawing.Size(50, 20)
                    'bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                    bottone2(CNT2).ForeColor = System.Drawing.Color.Black
                    'For index = 0 To bottone2(CNT2).Items.Count - 1
                    'If bottone2(CNT2).Items(index).ToString = CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(0, 5) Then
                    'bottone2(CNT2).SelectedIndex = index
                    'Exit For
    
                    'End If
                    'Next
                    'bottone2(CNT2).SelectedItem = CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(0, 5)
                    bottone2(CNT2).DropDownStyle = ComboBoxStyle.DropDownList
                    bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(0).Substring(0, 5))
                    bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(1).Substring(0, 5))
                    bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(2).Substring(0, 5))
                    bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(3).Substring(0, 5))
                    bottone2(CNT2).SelectedItem = CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(0, 5)
                    bottone2(CNT2).Tag = CNT2
                    AddHandler bottone2(CNT2).SelectedValueChanged, AddressOf cambia
    
                    X = X + 20
    
                    Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                    CNT1 += 1
                    Me.SplitContainer1.Panel2.Controls.Add(bottone2(CNT2))
                    CNT2 += 1
                    X = X + 25 + ListView1.Width + 5
    
                    bottone1(CNT1) = New Button
                    bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                    bottone1(CNT1).Size = New System.Drawing.Size(40, 20)
                    bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                    bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                    bottone1(CNT1).Text = "Ingr."
                    AddHandler bottone1(CNT1).Click, AddressOf aggiungi
    
    
                    Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                    CNT1 += 1
                    X = ListView1.Location.X - 110
                    Y = Y + 20
    
    
    
                End While
    
    
    
    
    
            Catch ex As Exception
    
            End Try
    
    
    
    
    
        End Sub
    And this to remove the buttons.

    Code:
    Public Sub bottoni(ByVal sender As Button, ByVal e As System.EventArgs)
    
            If sender.Text = "+" Then
                ListView1.Items(Integer.Parse(sender.Tag)).SubItems(0).Text += 1
    
    
            ElseIf sender.Text = "-" Then
                ListView1.Items(Integer.Parse(sender.Tag)).SubItems(0).Text -= 1
    
    
    
                If ListView1.Items(Integer.Parse(sender.Tag)).SubItems(0).Text = 0 Then
    
                    ListView1.Items(Integer.Parse(sender.Tag)).Remove()
    
                    For index = bottone1.Length - 2 to 0 Step -1
    
                        'RemoveHandler bottone1(index).Click, AddressOf bottoni
                        'SplitContainer1.Panel2.Controls.Remove
                        SplitContainer1.Panel2.Controls.Remove(bottone1(index))
    
    
    
    
    
    
    
    
    
    
                    Next
    
                    'bottone1(0).Dispose()
    
                    For index = 0 To bottone2.Length - 2
    
                        'MsgBox(bottone2.Length)
                        SplitContainer1.Panel2.Controls.Remove(bottone2(index))
    
    
    
    
    
    
    
    
    
    
                    Next
    
                    'MsgBox(Me.SplitContainer1.Panel2.Controls.Count)
                    'Dim stringa() As String
                    'Dim z = 0
                    Dim stringa1 As String
                    For Each Control As Object In Me.SplitContainer1.Panel2.Controls
    
                        'stringa(z) = Control.ToString
    
                        stringa1 += vbNewLine + Control.ToString
    
    
    
    
    
    
                    Next
    
                    'MsgBox(stringa1)
    
                    'MsgBox("")
                    'MsgBox(SplitContainer1.Panel2.Controls.Count)
    
    
                    Array.Clear(bottone1, 0, bottone1.Count)
                    Array.Resize(bottone1, 0)
                    Array.Clear(bottone2, 0, bottone2.Count)
                    Array.Resize(bottone2, 0)
    
                    Try
    
                        Dim CNT1 As Integer = 0
                        Dim CNT2 As Integer = 0
                        bottone1 = New Button(ListView1.Items.Count * 4) {}
                        bottone2 = New ComboBox(ListView1.Items.Count) {}
    
                        Dim X As Integer = ListView1.Location.X - 110
                        Dim Y As Integer = ListView1.Location.Y + 25
    
                        While CNT1 < ListView1.Items.Count * 4
    
    
                            bottone1(CNT1) = New Button
                            bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                            bottone1(CNT1).Size = New System.Drawing.Size(20, 20)
                            bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                            bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                            bottone1(CNT1).Text = "+"
                            bottone1(CNT1).Tag = CNT2
                            AddHandler bottone1(CNT1).Click, AddressOf bottoni
    
                            Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                            CNT1 += 1
                            X = X + 20
    
                            bottone1(CNT1) = New Button
                            bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                            bottone1(CNT1).Size = New System.Drawing.Size(20, 20)
                            bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                            bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                            bottone1(CNT1).Text = "-"
                            bottone1(CNT1).Tag = CNT2
                            AddHandler bottone1(CNT1).Click, AddressOf bottoni
    
                            Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                            CNT1 += 1
                            X = X + 20
    
                            bottone1(CNT1) = New Button
                            bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                            bottone1(CNT1).Size = New System.Drawing.Size(20, 20)
                            bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                            bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                            bottone1(CNT1).Text = "D"
                            AddHandler bottone1(CNT1).Click, AddressOf bottoni
    
                            X = X + 20
    
                            bottone2(CNT2) = New ComboBox
                            bottone2(CNT2).Location = New System.Drawing.Point(X, Y)
                            bottone2(CNT2).Size = New System.Drawing.Size(50, 20)
                            'bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                            bottone2(CNT2).ForeColor = System.Drawing.Color.Black
                            'For index = 0 To bottone2(CNT2).Items.Count - 1
                            'If bottone2(CNT2).Items(index).ToString = CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(0, 5) Then
                            'bottone2(CNT2).SelectedIndex = index
                            'Exit For
    
                            'End If
                            'Next
                            'bottone2(CNT2).SelectedItem = CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(0, 5)
                            bottone2(CNT2).DropDownStyle = ComboBoxStyle.DropDownList
                            bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(0).Substring(0, 5))
                            bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(1).Substring(0, 5))
                            bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(2).Substring(0, 5))
                            bottone2(CNT2).Items.Add(FormAggiungi.ComboBox1.Items(3).Substring(0, 5))
                            bottone2(CNT2).SelectedItem = CType(CType(sender, System.Windows.Forms.Button).Text, String).Substring(0, 5)
                            bottone2(CNT2).Tag = CNT2
                            AddHandler bottone2(CNT2).SelectedValueChanged, AddressOf cambia
    
                            X = X + 20
    
                            Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                            CNT1 += 1
                            Me.SplitContainer1.Panel2.Controls.Add(bottone2(CNT2))
                            CNT2 += 1
                            X = X + 25 + ListView1.Width + 5
    
                            bottone1(CNT1) = New Button
                            bottone1(CNT1).Location = New System.Drawing.Point(X, Y)
                            bottone1(CNT1).Size = New System.Drawing.Size(40, 20)
                            bottone1(CNT1).TextAlign = ContentAlignment.MiddleCenter
                            bottone1(CNT1).ForeColor = System.Drawing.Color.Black
                            bottone1(CNT1).Text = "Ingr."
                            AddHandler bottone1(CNT1).Click, AddressOf aggiungi
    
    
                            Me.SplitContainer1.Panel2.Controls.Add(bottone1(CNT1))
                            CNT1 += 1
                            X = ListView1.Location.X - 110
                            Y = Y + 20
    
    
    
                        End While
    
    
    
    
    
                    Catch ex As Exception
    
                    End Try
    
    
    
    
                End If
    
    
            ElseIf sender.Text = "C" Then
                ListView1.Items(Integer.Parse(sender.Tag)).Remove()
                Controls.Remove(bottone1(0))
    
    
            End If
    
    
    
    
    
    
    
    
    
        End Sub
    Any help would be appreciated eh okk.
    Thanks.
    Ciao.
    Andrea.
Working...