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

busqueda textbox autocomplet

Estas en el tema de busqueda textbox autocomplet en el foro de .NET en Foros del Web. Hola buenas noches, lo que quiero hacer es que en un textbox sea como el autocomple pero con celdas pero que la búsqueda sea según ...
  #1 (permalink)  
Antiguo 14/10/2010, 08:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 88
Antigüedad: 15 años, 5 meses
Puntos: 0
busqueda textbox autocomplet

Hola buenas noches, lo que quiero hacer es que en un textbox sea como el autocomple pero con celdas pero que la búsqueda sea según la descripción y vaya listando lo que escribes no importando donde este lo que esta escribiendo, hay alguna forma para hacer esto? Gracias asta pronto
  #2 (permalink)  
Antiguo 14/10/2010, 11:59
 
Fecha de Ingreso: octubre-2006
Mensajes: 88
Antigüedad: 17 años, 6 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
  #3 (permalink)  
Antiguo 20/10/2010, 22:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 88
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: busqueda textbox autocomplet

gracias por contestarme, lo que pasa que lo que quiero haces es que encuentre una palabra no umporta donde por ejemplo: la descripcion seria asi sony ericson w580 y otra protector sony ericson w580 negro. y el usuario solo introduce w580 y aparescan solo esos dos por que tienen el w580 es algo a si pero que aparesca como autocomplet. Gracias
  #4 (permalink)  
Antiguo 21/06/2014, 10:32
 
Fecha de Ingreso: abril-2014
Mensajes: 4
Antigüedad: 10 años
Puntos: 0
Respuesta: busqueda textbox autocomplet

Cita:
Iniciado por gctalico Ver Mensaje
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
Hola que tal estimado amigo gctalico de abte mano te agradezco por tu aporte ya que ayuda a obtener mas conocimientos
Yo pribe tu codigo ya que es lo que estaba buscando pero no lo pude hacer funcionar a la totalidad ya que conforme voy escribiendo en el texbox me va borrando lo que escribo y si uso las teclas direccionales no sale del texbox como dices a que se puede deber o quizas hay algo que obviastes en el codigo que publicastes.
Te agradeceria hacerme saber porfavor ya que llevo muchos dias tratando de hacer esto

Etiquetas: textbox, busquedas
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 02:05.