Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/10/2010, 11:59
gctalico
 
Fecha de Ingreso: octubre-2006
Mensajes: 88
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: busqueda textbox autocomplet

que tal, no se si entendi bien pero ahi te va un ejemplo que yo utilizo, tengo un listview con datos y un textbox donde voy escribiendo y como voy escribiendo me selecciona el item que concuerda en el listview y al darle enter me llena el textbox, es algo asi

Código vb:
Ver original
  1. Sub Autocompletar(ByVal ListView As ListView, ByVal TBox As TextBox, ByVal inicio As Integer)
  2.         ' variable para usar con el método FindItem que _
  3.         ' permite buscar en el LV
  4.        Dim item As ListViewItem
  5.         ' Dim seleccion As Integer = 0
  6.        ' busca en el item, la cadena escrita en el textbox, si coincide _
  7.         'devuelve una referencia al item
  8.        '  item = ListView.FindItemWithText(TBox.Text, 1, 0, 1)
  9.  
  10.         item = ListView.FindItemWithText(TBox.Text, True, inicio, True)
  11.         ' verifica que el item no sea un valor nothing
  12.        If Not item Is Nothing Then
  13.             ' Muestra la selección pormas que no tenga el foco
  14.            ListView.HideSelection = False
  15.             ' desplaza la lista
  16.            item.EnsureVisible()
  17.             ' selecciona el item
  18.            'item.Selected = True
  19.            item.Selected = True
  20.         Else
  21.             ' Oculta la selección ya que no hay coincidencia
  22.            ListView.HideSelection = True
  23.         End If
  24.     End Sub

esa es la funcion para autocompletar, ahora la llamo desde el evento textchanged asi

Código vb:
Ver original
  1. Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
  2.                                  
  3.         Call Autocompletar(LsvArticulos, TextBox2, 1)'(listview,textbox,indice de columna de listview)
  4.  
  5.     End Sub


tambien en el evento keydown del textbox hago esto

Código vb:
Ver original
  1. Private Sub TextBox2_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
  2.         If e.KeyCode = Keys.Down Then
  3.             If LsvArticulos.SelectedIndices.Count > 0 Then
  4.                 Try
  5.                     LsvArticulos.Items.Item(LsvArticulos.SelectedItems(0).Index + 1).Selected = True
  6.                     TextBox2.Text = Trim(LsvArticulos.SelectedItems(0).SubItems(2).Text())
  7.                 Catch ex As Exception
  8.                     Beep()
  9.                 End Try
  10.             Else
  11.                 MsgBox(frmGeneral.msgerror4)
  12.                 LsvArticulos.Items.Item(0).Selected = True
  13.             End If
  14.         End If
  15.     End Sub

y el el evento keyup hago esto

Código vb:
Ver original
  1. Private Sub TextBox2_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyUp
  2.         If e.KeyCode = Keys.Up Then
  3.             If LsvArticulos.SelectedIndices.Count > 0 Then
  4.                 Try
  5.                     LsvArticulos.Items.Item(LsvArticulos.SelectedItems(0).Index - 1).Selected = True
  6.                     TextBox2.Text = Trim(LsvArticulos.SelectedItems(0).SubItems(2).Text())
  7.                 Catch ex As Exception
  8.                     Beep()
  9.                 End Try
  10.             Else
  11.                 MsgBox(frmGeneral.msgerror4)
  12.                 LsvArticulos.Items.Item(0).Selected = True
  13.             End If
  14.         End If
  15.               If e.KeyCode = Keys.Enter Then
  16.                    TextBox2.Text = Trim(LsvArticulos.SelectedItems(0).SubItems(2).Text())
  17. else
  18. textbox2.text = ""
  19. end sub


con todo esto si me posiciono en el textbox2 y le doy con las flecas del teclado hacia arriba o hacia abajo me va seleccionando el item del listview y la funcion autocompletar conforme escribo en el textbox2 va selecionando de el listview ahora solo doy enter y me agrega el item de el listview a el textbox2


no se si era esto lo que querias pero espero te sirva

saludos