Visual Basic.NET - Sincronizar el desplazamiento de dos Listview

 
Vista:

Sincronizar el desplazamiento de dos Listview

Publicado por Hixem (178 intervenciones) el 19/07/2005 13:00:47
Hola,
tengo dos listview (listview1 y Listview2) con datos comunes en ambos (en algunos casos).

¿Como puedo sincronizar el desplazamiento de manera automática cuando pincho sobre un valor del listview1, y si este coincide con un valor valor del listview2 necesito me haga scroll en el listview2 para que muestre la linea del valor del listview2 que coincide del listview1?

(Scroll automático)

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sincronizar el desplazamiento de dos Listview

Publicado por tzener (83 intervenciones) el 19/07/2005 16:06:42
Mira... hay un metodo del listview que se llama EnsureVisible... lo que hace es hacer un scroll automatico hasta que el elemento seleccioknado sea visible. En el evento click de uno, haces la busqueda en el otro, dejando seleccionado el elemento que coincide y terminas el proceditimiento con un ListView.EnsureVisible() y ya

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sincronizar el desplazamiento de dos Listview

Publicado por Hixem (178 intervenciones) el 22/07/2005 12:34:20
Muchas Gracias, esa era la solucion:

aqui está el código

Dim litem1 As ListViewItem
Dim seg_social1 As String
Dim nombre1 As String
Dim nombre2 As String
Dim i As Integer
Dim pasa1, pasa2 As Boolean
pasa1 = False
pasa2 = False
Dim litem2 As ListViewItem
Dim seg_social2 As String
Dim ii As Integer
Dim encontrado As Boolean
encontrado = False
For i = 0 To ListView1.Items.Count - 1
litem1 = ListView1.Items(i)
If litem1.Selected = True Then
litem1 = ListView1.Items(i)
seg_social1 = litem1.SubItems(1).Text
nombre1 = litem1.SubItems(2).Text
pasa1 = True
Exit For
End If
Next
Dim posicion As Integer
For ii = 0 To ListView1.Items.Count - 1
Me.ListView1.Items(ii).BackColor = Color.White
Next
For ii = 0 To ListView2.Items.Count - 1
Me.ListView2.Items(ii).BackColor = Color.White
Next
For ii = 0 To ListView2.Items.Count - 1
litem2 = ListView2.Items(ii)
seg_social2 = litem2.SubItems(1).Text
If seg_social1 = seg_social2 Then
Me.ListView2.Items(ii).BackColor = Color.LightSteelBlue
encontrado = True
End If
Next

For i = 0 To ListView1.Items.Count - 1 And encontrado = True 'Rutina de scroll automatico del listview2
litem1 = ListView1.Items(i)
If litem1.Selected = True Then
If litem1.Index() > ListView2.Items.Count - 1 Then
Me.ListView2.EnsureVisible(ListView2.Items.Count - 1)
Else
Me.ListView2.EnsureVisible(litem1.Index())
End If
Exit For
End If
Next

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sincronizar el desplazamiento de dos Listview

Publicado por Hixem (178 intervenciones) el 22/07/2005 15:16:08
Rutina mejorada

Dim litem1 As ListViewItem
Dim seg_social1 As String
Dim i As Integer
Dim pasa1, pasa2 As Boolean
pasa1 = False
pasa2 = False
Dim litem2 As ListViewItem
Dim seg_social2 As String
Dim ii As Integer
Dim encontrado As Boolean
encontrado = False
For i = 0 To ListView1.Items.Count - 1
litem1 = ListView1.Items(i)
If litem1.Selected = True Then
litem1 = ListView1.Items(i)
seg_social1 = litem1.SubItems(1).Text
pasa1 = True
Exit For
End If
Next
Dim POSICION_FINAL As Integer
POSICION_FINAL = 0
For ii = 0 To ListView1.Items.Count - 1
Me.ListView1.Items(ii).BackColor = Color.White
Next
For ii = 0 To ListView2.Items.Count - 1
Me.ListView2.Items(ii).BackColor = Color.White
Next
For ii = 0 To ListView2.Items.Count - 1
litem2 = ListView2.Items(ii)
seg_social2 = litem2.SubItems(1).Text
If seg_social1 = seg_social2 Then
Me.ListView2.Items(ii).BackColor = Color.LightSteelBlue
encontrado = True
POSICION_FINAL = litem2.Index 'posicion
End If
Next
If POSICION_FINAL > 0 Then
Me.ListView2.EnsureVisible(POSICION_FINAL)
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar