Foros del Web » Programación para mayores de 30 ;) » .NET »

Recorrer Dos list box

Estas en el tema de Recorrer Dos list box en el foro de .NET en Foros del Web. Haber si me puedo explicar bien, tengo 2 listbox, en cada uno cargo la informacion de un archivo plano, lo que debe hacer el programa ...
  #1 (permalink)  
Antiguo 03/11/2009, 10:48
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Recorrer Dos list box

Haber si me puedo explicar bien,
tengo 2 listbox, en cada uno cargo la informacion de un archivo plano, lo que debe hacer el programa es recorrer un listbox coger un item enviarlo a una variable, mientras se recorre el otro listbox, tambien cogiendo un item enviandolo a otra variable y comparar lo que va quedando en ambas variables.

nota: no he encontrado la manera de visualizar cada item que va rrecorriendo el for.

Agradezco de antemano su ayuda

cualquier aclaracion estare pendiente para esclarecerla
  #2 (permalink)  
Antiguo 03/11/2009, 12:18
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Recorrer Dos list box

Podrías usar un Timer que te vaya mostrando los elementos según un determinado intervalo de tiempo.
Código vb.net:
Ver original
  1. Private indice As Int32
  2.  
  3. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  4.         'La propiedad se cambió a True en tiempo de diseño.
  5.         Timer1.Interval = 1000 'Cada segundo mostrará los elementos en los label's
  6.         If indice < Me.ListBox2.Items.Count - 1 Then
  7.             Me.Label1.Text = Me.ListBox2.Items(indice).ToString()
  8.         End If
  9.         If indice < Me.ListBox1.Items.Count - 1 Then
  10.             Me.Label2.Text = Me.ListBox1.Items(indice).ToString()
  11.         End If
  12.         indice += 1
  13.     End Sub
Lo que hace es mostrar cada elemento en distintos labels, para que te avise si son iguales los elementos podrías validar los datos en el evento TextChanged del label 2.

Código vb.net:
Ver original
  1. Private Sub Label1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.TextChanged
  2.     If Me.Label1.Text = Me.Label2.Text Then
  3.         MessageBox.Show("Registros iguales")
  4.     End If
  5. End Sub
  6. f

Es una solución un poco tramposa ya que si lo intentas mostrar mediante un for sólo lograrás ver el último registro por la rapidez con que se hace.
La opción más indicada creo que es usar subprocesos, quizá con el control BackGroundWorker, pero no tengo ejemplos de eso :(.
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 03/11/2009, 16:55
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Recorrer Dos list box

Muchas Gracias eperedo tu codigo me fue muy util para poder comenzar a trabajar, Agradesco toda tu colaboracion.

Lo que coloco a continuacion es como me va quedando lo que en realidad necesito, la cuestion ahora es que necesito sacar aparte los items que se encuentran en el listbox1 pero que no se encuentran en el listbox2 y viceversa, como ya dije esto es lo que llevo, si alguien me puede colaborar deverdad se lo agradesco.

Código bv.net:
Ver original
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         Label2.Visible = (True)
  3.         For i As Integer = 0 To Me.ListBox1.Items.Count - 1
  4.             For j As Integer = 0 To Me.ListBox2.Items.Count - 1
  5.                 If ListBox1.Items.Item(i) = ListBox2.Items.Item(j) Then
  6.                 Else
  7.                     ListBox4.Items.Add(ListBox1.Items.Item(i))
  8.                 End If
  9.             Next
  10.         Next
  11.         Label10.Text = ListBox4.Items.Count
  12.  
  13.  
  14.         For k As Integer = 0 To Me.ListBox2.Items.Count - 1
  15.             For l As Integer = 0 To Me.ListBox1.Items.Count - 1
  16.                 If Not ListBox2.Items.Item(k) = ListBox1.Items.Item(l) Then
  17.                     ListBox3.Items.Add(ListBox2.Items.Item(k))
  18.                 End If
  19.             Next
  20.         Next
  21.         Label7.Text = ListBox3.Items.Count
  22.  
  23.     End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:11.