none
Ayuda para Filtrar un combobox en VB.Net 2010 RRS feed

  • Pregunta

  • Hola amigos, como puedo ir filtrando un combobox al ir tecleando. El combobox ya tiene una lista cargada, por ejemplo, tengo un combobox con los siguientes elementos:

    Ortodoncia
    Endodoncia Infantil

    Endodoncia Adultos

    Sellantes
    Implantología
    ODONTOLOGÍA

    PERIODONCIA

    ahora por ejemplo cuando yo voy tecleando digamos, E N D O mientras vaya escribiendo la palabra ENDO que me vaya filtrando. cuando ponga la 'E' que me muestre todos los elementos que tengan 'E', y así con lo demás

    Gracias de antemano por la ayuda


    dantexito

    • Cambiado Enrique M. Montejo lunes, 27 de octubre de 2014 7:26 Pregunta relacionada con controles de Windows Forms.
    miércoles, 22 de octubre de 2014 4:57

Todas las respuestas

  • Hola Dani:

    Puedes crear un textbox y a medida que vayas introduciendo las letras de tu búsqueda, en el combobox te irán apareciendo las palabras que contengan esas letras.

    Private Sub txtOperDental_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtOperDental.TextChanged
                   ' Recorremos los items del comboBox
            For i As Integer = 0 To cboOperativaDental.Items.Count - 1
    
                ' Buscamos si el texto del texbox coincide con el item             If (CStr(cboOperativaDental.Items(i)).ToLower.Contains(txtOperDental.Text.ToLower)) Then
    
                    'Seleccionamos el item         
                    cboOperativaDental.SelectedIndex = i
    
                    ' desplegamos el combobox
                    cboOperativaDental.DroppedDown = True
    
                    'Salimos, no hace falta comprobar mas
                    Return
                End If
            Next
        End Sub
    
    

    Y luego desde el combobox ya puedes seleccionar el item que te interese.

    Un saludo.

    Gemma

    miércoles, 22 de octubre de 2014 7:00
  • Hola:
    Cuando cargas los datos en el ComboBox, cargalos ordenados por el campo que se visualiza en el combo.
    La propiedad Sorted del combo = true.
    Si se cumplen estos 2 requisitos, al desplegar el combo, cuando vas escribiendo el combo se va posicionado segun lo que escribes.

    Un saludo desde Bilbo
    Carlos

    miércoles, 22 de octubre de 2014 8:23
  • Si esta ordenado pero lo que sucede es que cuando escriba alguna letra me vaya apareciendo los que comiencen por ejemplo con "E" o "A" así sucesivamente.

    dantexito

    miércoles, 22 de octubre de 2014 16:25
  • Gracias pero si lo quiero hacer directamente del combobox, como podría hacerlo ya que ahí es donde tengo que ir escribiendo, mas no ene el combobox.

    dantexito

    miércoles, 22 de octubre de 2014 16:30
  • Hola, lo puedes hacer por las propiedades del combo

    Combo.DropDownStyle=Simple

    Combo.AutocompleteSource=ListItems

    Combo.autoCompleteMode=SuggetsAppend

    Te filtrará mientras escribes los iniciales.

    Espero que te sirva.

    Saludos.

    miércoles, 22 de octubre de 2014 23:29
  • Hola:

     Analiza este articulo a ver si te sirve de guía:

    AutoComplete ComBoxBox usando Listas Genericas


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 23 de octubre de 2014 20:27
  • donde lo pongo en el Frm Load o en el KeyPress del Combobox, si es en el key press no me permite escribir y me dice que no esta declarado simple,ListItems,SuggetsAppend)

    Combo.DropDownStyle=Simple

    Combo.AutocompleteSource=ListItems

    Combo.autoCompleteMode=SuggetsAppend

    mi combobox carga por medio del sql

        Public Sub s()

            Dim cmd As New SqlCommand("select codigo_p,descripcion_p from tratamientos", cn)

            Dim dr1 As New SqlDataAdapter(cmd)

            Dim dt1 As New DataTable

            dr1.Fill(dt1)

            Me.cbbox.DataSource = dt1

            Me.cbbox.DisplayMember = "descripcion_p"

            Me.cbbox.ValueMember = "codigo_p"

        End Sub


    dantexito

    viernes, 24 de octubre de 2014 23:14