elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Recorrer listview al buscar y que seleccione la siguiente coincidencia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recorrer listview al buscar y que seleccione la siguiente coincidencia  (Leído 5,833 veces)
RiasChan

Desconectado Desconectado

Mensajes: 59

RiasChan BNS!


Ver Perfil
Recorrer listview al buscar y que seleccione la siguiente coincidencia
« en: 19 Abril 2018, 18:18 pm »

Tengo este codigo, que me vale bien para buscar por columna, y seleccionar la coincidencia:

Código:
Private Sub cmdBuscar_Click()
   Dim Opcion As Integer
   Dim dato As String
   Dim Item As ListItem
  
   ' busca por las demás columnas ( por SubItem )
   If Option1.Value = True Then
      dato = txtSearch.Text
      Opcion = lvwSubItem ' busca por los subitems
   End If

   Next i
         ' Busca por la primer columna ( por item )
   If Option2.Value = True Then
      dato = txtSearch.Text
      Opcion = lvwText ' busca por el item
   End If
      
    ' si lo ingresado es una cadena vacia sale
    If dato = vbNullString Then
        Exit Sub
    End If
  
   ' Busca con el método FindItem, estableciendo la opcion de búsqueda
   Set Item = ListView1.FindItem(dato, Opcion, , lvwPartial)
    
   ' si el item es nothing no se encontró
   If Item Is Nothing Then
      MsgBox " No se encontró el dato", vbInformation
      Exit Sub
   Else
       ' .. si no , selecciona el elemento encontrado
       Item.EnsureVisible
       Item.Selected = True
       ListView1.SetFocus
   End If

               End Sub

le faltaría agregarle un ciclo para que continue con la palabra siguiente al volver a aprtar el boton. Alguna idea?


« Última modificación: 21 Abril 2018, 21:43 pm por RiasChan » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Buscar en un ListView en una columna y seguir buscando al apretar el cmdbotom
« Respuesta #1 en: 19 Abril 2018, 18:24 pm »

Si tienes el ejemplo, que más te falta?  :silbar:


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
RiasChan

Desconectado Desconectado

Mensajes: 59

RiasChan BNS!


Ver Perfil
Re: Buscar en un ListView en una columna y seguir buscando al apretar el cmdbotom
« Respuesta #2 en: 19 Abril 2018, 18:31 pm »

andat a trollear a otro lado capo, no molestes acá, salu2
En línea

RiasChan

Desconectado Desconectado

Mensajes: 59

RiasChan BNS!


Ver Perfil
Re: Buscar en un ListView en una columna y seguir buscando al apretar el cmdbotom
« Respuesta #3 en: 21 Abril 2018, 21:39 pm »

sintetizé todos mis problemas en un post modificado mas rapido. La petición es directa y sin vueltas, gracias  :laugh:
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.351


Ver Perfil
Re: Recorrer listview al buscar y que seleccione la siguiente coincidencia
« Respuesta #4 en: 23 Abril 2018, 11:17 am »

Los mensajes privados, son razonablemente para cosas en las que nadie más tenga ver o saber lo que uno tenga que decir a otro, no para solicitar ayuda...

Holal, me acuerdo de vos, fuiste muy amable al darme un codigo exelente para buscar en un list.

Lo que me pasa ahora es q tengo un listview, (ya cargado todo) La idea es buscar por columnas y que el foco se pare en esa fila (ya esta hecho) Lo que me faltaria es que cada vez q hago click en el commandbuton vuelva a buscar y marque el siguiente, o sea, el ciclo. Tenes idea?

este es el código del boton:


Código:
Dim k As Long
   Dim Opcion As Integer
   Dim dato As String
   Dim Item As ListItem

      ' Busca por la primer columna ( por item )
   If Option2.Value = True Then
      dato = txtSearch.Text
      Opcion = lvwText ' busca por el item
   End If
     
   ' busca por las demás columnas ( por SubItem )
   If Option1.Value = True Then
      dato = txtSearch.Text
      Opcion = lvwSubItem ' busca por los subitems
   End If
     
    ' si lo ingresado es una cadena vacia sale
    If dato = vbNullString Then
        Exit Sub
    End If
 
   ' Busca con el método FindItem, estableciendo la opcion de búsqueda
   Set Item = ListView1.FindItem(dato, Opcion, , lvwPartial)
     
   ' si el item es nothing no se encontró
   If Item Is Nothing Then
      MsgBox " No se encontró el dato", vbInformation
      Exit Sub
   Else
       ' .. si no , selecciona el elemento encontrado
       Item.EnsureVisible
       Item.Selected = True
       ListView1.SetFocus
   End If
   

El problema es que ma pereza tener que armar todo un proyecto sólo para verificar una tontería y que luego no se ajuste a tus necesidades. Ya te dije que un listview es un control complejo y muy completo. en realidad si uno conoce con cierta soltura vb6, el código que te dí para el control listbox, debiera ser suficiente para saber aplicalro a otro control que también disponga de una lista... solo cambian nombres de propiedades, de objetos, y la forma de llagar a ellas...

Por otro lado, si me pasas copia del proyecto (basta con la ventana donde tengas el listview (con la configuración que tengas para el propio control), y el código de respuesta... veo de cargarlo, ejecutarlo y donde está el fallo, error, etc... entonces no es tanto tiempo de mi parte.
(es decir, no necesito chorrocientos formularios, ni módulos de tú proyecto, sólo lo preciso para probarlo con la configuración que mantienes y otros controles que tengas asociados al listview incluso si haces copia del mismo, luego en la copia elimina todo lo superfluo para probarlo (esto es, si tienes un textbox, un label, un botón, etc... que interrelacionan con el listview, se quedan pero si no, sobra solo me hará perder tiempo, de igual modo elimina todo el código no relacionado, esto es si en la carga del formulario hay líneas relacionadas con el listview, se quedan, etc...). Cuando lo que se pide no es puntual, o no se es explícito, da pereza porque conlleva mucho más tiempo y sin la certeza de que sea lo que uno realmente necesita.

Saludos...
En línea

RiasChan

Desconectado Desconectado

Mensajes: 59

RiasChan BNS!


Ver Perfil
Re: Recorrer listview al buscar y que seleccione la siguiente coincidencia
« Respuesta #5 en: 23 Abril 2018, 17:33 pm »

Hola, todo bien no pasa nada. De casualidad encontre este ejemplo 97 (ejemplo 2) que hace justo lo que quiero, ya esta solucionado dsp de buscar un rato (por que encontre eso de casualidad bajando desde el ejemplo 192 de recursos vb. salu2

http://www.recursosvisualbasic.com.ar/htm/listado-api/97-buscar-en-listview.htm
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines