Problema con listview

20/02/2004 - 16:57 por JD | Informe spam
Hola foro, tengo un problemita que explico a continuacion...

Tengo un formulario, una caja de texto, y un listview... ahora, lo que
quiero es que al momento de yo ir tecleando una palabra en la caja de texto
hacer una busqueda incremental en el control listview. mi control listview
consta de 2 columnas, una con un numero de control mismo que uso en el campo
key del listview, y la segunda columna, es el nombre de la persona a la que
esta asignado ese numero de control. Lo que yo quiero es teclear el nombre
de la persona y que el control listview se vaya localizando en el renglon
donde va coincidiendo lo que tecleo en el textbox.

Lei sobre el metodo Finditem del listview, pero no funciona puesto que busca
por el campo Key. tambien dice que busca en la propiedad Tag y en los
subitems, pero esto no es cierto puesto que no funciona o no se que estoy
haciendo mal.

Ayudenme, ya estoy desesperado pues necesito hacer eso.

Saludos

JD.
 

Leer las respuestas

#1 Víctor B.
21/02/2004 - 13:04 | Informe spam
Tienes toda la razón, lo he probado también con VB6 y tampoco funciona, debe
ser un "Bug" no documentado, de todas formas puedes implementar tu propio
FindItem. Este sería un pequeño ejemplo chabacano:
Suponiendo que tienes en un formulario un ListView llamado 'lst' y un
TextBox llamado Text1, en el evento KeyPress del TextBox estaría el
siguiente código:
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL oITEM, sTXT, nH

*!* Primero recogemos la tecla pulsada del buffer del teclado
=DODEFAULT()

*!* Quitamos los espacios sobrantes
m.sTXT=ALLTRIM(THIS.Text)

IF LEN(m.sTXT)>0 THEN
*!* Empieza la búsqueda
FOR nH=1 TO THISFORM.LSt.ListItems.Count
IF THISFORM.LSt.ListItems(nH).SubItems(1)=m.sTXT THEN
*!* Si lo encuentra(suponiendo que SET EXACT está en OFF, lo hace
visible y lo selecciona
THISFORM.LSt.ListItems(nH).EnsureVisible()
THISFORM.LST.ListItems(nH).Selected=.T.
ENDIF
NEXT
ENDIF
*!* Impedimos que se ejecute el código de la Clase, si no se duplicaría la
tecla pulsada.
NODEFAULT

Espero que sea de tu ayuda, saludos...


"JD" escribió en el mensaje
news:%
Hola foro, tengo un problemita que explico a continuacion...

Tengo un formulario, una caja de texto, y un listview... ahora, lo que
quiero es que al momento de yo ir tecleando una palabra en la caja de


texto
hacer una busqueda incremental en el control listview. mi control listview
consta de 2 columnas, una con un numero de control mismo que uso en el


campo
key del listview, y la segunda columna, es el nombre de la persona a la


que
esta asignado ese numero de control. Lo que yo quiero es teclear el nombre
de la persona y que el control listview se vaya localizando en el renglon
donde va coincidiendo lo que tecleo en el textbox.

Lei sobre el metodo Finditem del listview, pero no funciona puesto que


busca
por el campo Key. tambien dice que busca en la propiedad Tag y en los
subitems, pero esto no es cierto puesto que no funciona o no se que estoy
haciendo mal.

Ayudenme, ya estoy desesperado pues necesito hacer eso.

Saludos

JD.



Preguntas similares