none
ComboBox no vuelve a NULL luego de borrar Item RRS feed

  • Pregunta

  • Hola tengo un pequeño inconveniente con mi programa.

    Tengo un combobox que lleno con un DataSource de un procedimiento almacenado de mi BD, lo que quiero es a medida que vaya escribiendo en el combobox solo se me muestren los items que coincidan con lo que escribo. Para dar un ejemplo tengo 4 registros para que se muestren en el combobox: 'CLASE, CLASSROOM, ZOOM, NULL'. El problema está cuando empiezo a escribir en el control, escribo la letra 'C' y si me aparecen las dos coincidencias que deben (CLASE, CLASSROOM) pero también se autocompleta el texto del combobox a CLASE cuando yo solo escribí una letra y tampoco seleccioné ningún item. Entonces cuando deseo borrar esa palabra encuentro otro problema; el cursor no está al final de la palabra sino al principio y tampoco lo puedo mover al final, por lo que solo puedo borrar con DELETE y no con BACKSPACE, pero cuando he borrado casi toda la palabra y solo me queda una letra la borro pero no queda en blanco sino que inmediatamente cambia el valor a 'ZOOM', que es otro item que tampoco seleccioné. Recalco que tengo las propiedades Autocomplete en None por lo que eso no es el problema. 

    Procedimiento almacenado en SQL SERVER

    ALTER PROC [dbo].[BuscarProducto]
    (
    	@filtro varchar(100)
    )
    AS 	
    	SELECT * FROM compra WHERE producto LIKE @filtro + '%'

    Llamado del procedimiento desde capa Lógica en C#

     public DataTable BuscarProducto()
            {
                List<ClsParametros> lst = new List<ClsParametros>();
    
                lst.Add(new ClsParametros("@filtro", m_filtroproducto));
                return manejador.Listado("BuscarProducto", lst);
            }

    Y ejecuto el procedimiento desde el evento TEXTCHANGED del ComboBox

     private void cbProducto_TextChanged_1(object sender, EventArgs e)
            {
                com.m_filtroproducto = cbProducto.Text;
    
                //llenamos el combobox de Productos
                cbProducto.DataSource = com.BuscarProducto();
                cbProducto.DisplayMember = "producto";
                cbProducto.ValueMember = "idcompra";
            } 

    Cualquier ayuda será muy agradecida.

    domingo, 24 de enero de 2021 23:36

Todas las respuestas

  • He encontrado una soluciòn alternativa, antes de eso comentar que este problema en si no lo pude resolver, lo extraño es que ya he realizado este proceso en anteriores proyectos pero esta vez simplemente no funcionaba y el combobox no actuaba de la manera que debìa.

    Ahora bien, lo que hice para solucionarlo fue no usar el ComboBox de Visual Studio, sino que usé el control SearchLookUpEdit del paquete DevExpress, solo asi he podido hacer lo que deseaba. Si alguien tiene este problema en el futuro y encuentra una solución sería bueno agregarla por aqui asi le es de ayuda a alguien más.


    Computer engineer

    martes, 26 de enero de 2021 21:21