none
Borrar numero de item de selección de 2 listbox RRS feed

  • Pregunta

  • Saludos he tratado de eliminar un item de seleccion de 2 listbox al mismo tiempo, por decir hay 2 listbox cada uno con 10 datos, deseo eliminar el item seleccionado pero tambien deseo que al igual el mismo numero de item seleccionado se elimine del listbox2

        Private Sub ButtonBorarselect_Click(sender As Object, e As EventArgs) Handles ButtonBorarselect.Click
    
    
            ListBox1.Items.Remove(ListBox1.SelectedItem)
            ListBox2.Items.Remove(LabelNUMEROITEM.Text)
    
        End Sub
    
        Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
            Dim Indice As Integer = ListBox1.SelectedIndex
            LabelNUMEROITEM.Text = Indice
        End Sub



    viernes, 29 de noviembre de 2019 4:25

Respuestas

  • Hola:
    En un Form como el de la imagen

    Copia y pega el siguiente codigo

    Option Strict On
    Option Explicit On
    Public Class Form3
        Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
            Me.ListBox1.Items.Add("Texto1")
            Me.ListBox1.Items.Add("Texto2")
            Me.ListBox1.Items.Add("Texto3")
            Me.ListBox1.Items.Add("Texto4")
            Me.ListBox1.Items.Add("Texto5")
            '
            Me.ListBox2.Items.Add("Dato1")
            Me.ListBox2.Items.Add("Dato2")
            Me.ListBox2.Items.Add("Dato3")
            Me.ListBox2.Items.Add("Dato4")
            Me.ListBox2.Items.Add("Dato5")
        End Sub

        Private Sub btnBorrar_Click(sender As Object, e As EventArgs) Handles btnBorrar.Click
            Dim Indice As Integer = ListBox1.SelectedIndex
            ListBox1.Items.RemoveAt(Indice)
            ListBox2.Items.RemoveAt(Indice)
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos
    • Marcado como respuesta Cael1020 domingo, 1 de diciembre de 2019 5:30
    sábado, 30 de noviembre de 2019 21:52

Todas las respuestas

  • Hola Cael, prueba al revez, primero elimina del ListBox2 y luego ListBox1, ya que seleccionas el text del Label mediante SelectIOndexChanged, para cuando quieras eliminar por segunda vez (ListBox2) el text del label debería haber cambiado

    Saludos

    Edito: Si el tema es eliminar el mismo item o sea por su nombre y no por su index utiliza el siguiente método para ello ej.

       Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    
            If Not String.IsNullOrEmpty(Label2.Text) And Not Label2.Text = -1 Then
                ListBox2.Items.Remove(ListBox1.SelectedItem)
                ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
            End If
           
    
        End Sub


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗


    viernes, 29 de noviembre de 2019 7:20
  • Si me acabo de dar cuenta que si son igual los elimina pero si son diferetes no los elimina datos es decir si en el

    Listbox1 esta de este modo

    texto1

    texto2

    texto3

    texto4

    texto5

    Listbox2

    dato1

    dato2

    dato3

    dato4

    dato5  

    veo que si no elimina si no son igual contenido, mis datos son distintos, solo deseo eliminar el item de seleccion que al igual se elimine de la lista 2

    • Propuesto como respuesta Pablo Rubio viernes, 29 de noviembre de 2019 22:23
    viernes, 29 de noviembre de 2019 17:14
  • En tal caso, si deseas eliminar solo por index utiliza en ambos casos SelectedIndex, mediante RemoveAt. Tendras que tener presente que los indices coincidan en ambos ListBox's y mantener el orden de eliminación como está sugerido

    Saludos y comentas


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    viernes, 29 de noviembre de 2019 21:09
  • ya intente de estas 2 formas y no se elimina de la lista 2

           ListBox2.Items.Remove(ListBox1.SelectedItem)
            ListBox1.Items.Remove(ListBox1.SelectedItem)
    
    
    
    '' o tambien
    
    
           ListBox2.Items.Remove(LabelNUMEROITEM.Text)
            ListBox1.Items.Remove(ListBox1.SelectedItem)

    sábado, 30 de noviembre de 2019 19:47
  • Hola:
    En un Form como el de la imagen

    Copia y pega el siguiente codigo

    Option Strict On
    Option Explicit On
    Public Class Form3
        Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
            Me.ListBox1.Items.Add("Texto1")
            Me.ListBox1.Items.Add("Texto2")
            Me.ListBox1.Items.Add("Texto3")
            Me.ListBox1.Items.Add("Texto4")
            Me.ListBox1.Items.Add("Texto5")
            '
            Me.ListBox2.Items.Add("Dato1")
            Me.ListBox2.Items.Add("Dato2")
            Me.ListBox2.Items.Add("Dato3")
            Me.ListBox2.Items.Add("Dato4")
            Me.ListBox2.Items.Add("Dato5")
        End Sub

        Private Sub btnBorrar_Click(sender As Object, e As EventArgs) Handles btnBorrar.Click
            Dim Indice As Integer = ListBox1.SelectedIndex
            ListBox1.Items.RemoveAt(Indice)
            ListBox2.Items.RemoveAt(Indice)
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos
    • Marcado como respuesta Cael1020 domingo, 1 de diciembre de 2019 5:30
    sábado, 30 de noviembre de 2019 21:52
  • No, fijate que hago referencia a RemoveAt esto toma el valor integred de el número de el item, si utilizas Remove simplemente hacer referencia al valor Text (string) del item por tanto en ambos casos, según tu lógica, tebes aplicar ej

      Dim Indice As Integer = ListBox1.SelectedIndex

      ListBox1.Items.RemoveAt(Indice)
      ListBox2.Items.RemoveAt(Indice)

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    sábado, 30 de noviembre de 2019 22:25