Se elimina la primer letra en un combobox

Bueno ese es mi problema al principio tengo un combobox que al escribir una letra en el automáticamente se rellena con datos de una base sql que tengan esa letra en el principio y funcionó bien pero se seleccionaba automáticamente el primero y si quería hacer una búsqueda nueva no podía entonces logré que se deseleccionara pero ahora desaparece la primer letra no se que hacer gracias de antemano, éste es mi código del combobobox ignora el que le puse txtnombre gracias

Public Sub txtNombre_TextChanged1(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNombre.TextChanged
Try
consql.Close()
consql.Open()
Dim DataSet1 As New DataSet
Dim TablaProveedor As DataTable
Dim DAProveedor As New Odbc.OdbcDataAdapter("Select * From prestamos WHERE left(Nombre,1)= '" & txtNombre.Text & "' ORDER BY id_prestamo", consql)
DAProveedor.Fill(DataSet1, "Proveedor")
TablaProveedor = DataSet1.Tables("Proveedor")
txtNombre.DataSource = TablaProveedor
txtNombre.DisplayMember = TablaProveedor.Columns(5).ColumnName
txtNombre.SelectedIndex = -1
txtNombre.DroppedDown = True
txtNombre.Select(txtNombre.Text.Length, 5)
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical, Me.Text)
End Try
End Sub

1 respuesta

Respuesta
1

¿Dónde está el código que borra cuando quieres escribir otra cosa?

Para poner código haz esto:

primeramente muchísimas gracias por responder tan rápido y por esa ayuda de insertar código

Éste es mi código no hay un código para borrar eso es lo extraño se borra automáticamente la primer letra el código es para agregar los datos al combobox y para deseleccionar el combobox éste es mi código:

Public Sub txtNombre_TextChanged1(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNombre.TextChanged
Try
consql.Close()
consql.Open()
Dim DataSet1 As New DataSet
Dim TablaProveedor As DataTable
Dim DAProveedor As New Odbc.OdbcDataAdapter("Select * From prestamos WHERE left(Nombre,1)= '" & txtNombre.Text & "' ORDER BY id_prestamo", consql)
DAProveedor.Fill(DataSet1, "Proveedor")
TablaProveedor = DataSet1.Tables("Proveedor")
txtNombre.DataSource = TablaProveedor
txtNombre.DisplayMember = TablaProveedor.Columns(5).ColumnName
txtNombre.SelectedIndex = -1
txtNombre.DroppedDown = True
txtNombre.Select(txtNombre.Text.Length, 5)
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical, Me.Text)
End Try
End Sub

El problema que no deberías hacer es llenar cada vez que se cambia el texto del combo.

Lo que debes hacer es desde las propiedades asignarle los valores y no cada vez que cambia una letra, por que primero agotas la base de datos golpeando una y otra vez, y segundo llenas una y otra y otra vez los datos.

Esas mismas propiedades que usas en tiempo de ejecución buscalas y llenalas en tiempo de diseño.

Perdón por no responder antes pero es que no había podido quiero darte muchísimas gracias por responder tan rápido eres de los pocos bueno gracias por explicarme eso de que al rellenar cada que se cambia el texto genera problemas

quisiera pedirte ayuda a saber como podría hacer es que quiero realizar algo como lo que tiene google que al escribir una letra se despliega la lista de búsquedas con esa letra y mientras agregas más letras se reduce la búsqueda quisiera saber como hacerlo de antemano gracias :)

En las propiedades del combo busca "AutoCompleteMode" y ponle como valor Append

Muchísimas gracias por tus respuestas tan prontas y por tu paciencia lo revisaré y te comento como me fue dejaré la respuesta activa y si se soluciona con eso la finalizaré gracias por todo

Mejor que la cierres, siempre puedes volver a preguntar en el futuro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas