Vb.net: AutoComplete

Una de las cosas que más quebraderos de cabeza nos puede llegar a dar es la forma en que los usuarios introducen los datos, ya que para una misma referencia podemos llegar a tener variaciones que a la hora de extraer los datos. Por ejemplo, no será lo mismo entrar nombre-apellido que nombre_apellido.

¿Qué podemos hacer? Limitar la imaginación de los usuarios o sugerirles la forma correcta de hacerlo. Una buena manera es utilizar los Auto Complete, que nos permiten sugerir a los usuarios contenido ya entrado que puede corresponder con lo que quieren introducir.

Aquí tenemos un ejemplo para cargar unos datos des de una base de datos.

 DBConnection = New OleDbConnection(DBCONNECTION_STR)
 DBConnection.Open()
 DBCommand = DBConnection.CreateCommand()
 DBCommand.CommandText = SQL_SELECT_STR
 DBCommand.Connection = DBConnection
 DBDataReader = DBCommand.ExecuteReader()
 ' Cargamos los valores
 While (DBDataReader.Read())
    TextBox.AutoCompleteCustomSource.Add(DBDataReader(0)) ' En este caso los datos de la primera columna del resultado devuelto
 End While
 DBConnection.Close()

En el objeto TextBox hay que modificar las propiedades

AutoCompleteMode con el valor Suggest, Append o SuggestAppend (Sugerir, Añadir o Sugerir+Añadir)

AutoCompleteSource con el valor CustomSource, para este caso. Existen otros tipos de fuente para rellenar la colección de auto completado.

Si los valores que queremos poner como sugerencias de AutoComplete los vamos a utilizar en más de un objeto, podemos utilizar una variable de tipo AutoCompleteStringCollection.

Dim stringCollection As New AutoCompleteStringCollection

Cargamos los valores en la colección

While city_reader.Read()
     stringCollection .AddRange(New String() {DBDataReader(0)})
End While

Cargamos la colección en los diferentes objetos en los que queremos sugerir contenido.

TextBox1.AutoCompleteCustomSource = stringCollection 
TextBox2.AutoCompleteCustomSource = stringCollection

 

 

Share

No hay entradas relacionadas.

Tags: ,

Leave a Reply