Introducción
Muchas veces es necesario exponer al usuario herramientas de búsqueda que le faciliten la interacción con la aplicación que desarrollamos.
Una de estas herramientas es precisamente el AutoComplete, por el cual el usuario podrá ir visualizando los ítems existentes a medida que se escribe en un control.
TextBox AutoComplete
Hacer uso de las opciones de autocomplete de estos controles es bastante simple, solo hace falta especificar un par de propiedades, pero hay que tener en cuenta algunos puntos.
Estas propiedades son:
AutoCompleteSource
AutoCompleteMode
AutoCompleteCustomSource
1.
textBox1.AutoCompleteCustomSource = DataHelper.LoadAutoComplete();
2.
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
3.
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
Esta propiedad es justamente uno de los puntos a tener en cuenta, ya que requiere cargar una lista de ítems que provenga de una colección del tipo “AutoCompleteStringCollection”
Es por ello que en el ejemplo se visualiza la generación de los datos que cargaran esta colección
01.
public
static
AutoCompleteStringCollection LoadAutoComplete()
02.
{
03.
DataTable dt = LoadDataTable();
04.
05.
AutoCompleteStringCollection stringCol =
new
AutoCompleteStringCollection();
06.
07.
foreach
(DataRow row
in
dt.Rows)
08.
{
09.
stringCol.Add(Convert.ToString(row[
"Nombre"
]));
10.
}
11.
12.
return
stringCol;
13.
}
ComboBox AutoComplete
La utilización de las opciones de autocomplete de un control Combobox son idénticas a las de un TextBox, solo difiere en que el combo requiere cargar sus ítems previamente para la selección por parte del usuario.
O sea el combobox requiere dos listas para bindear
- una normal que se asignara al DataSource, y en donde se especificara tanto el valor a desplegar como el valor de la key
- una especial con la lista de descripciones para el autocomplete
01.
//
02.
// Cargo los datos del combobox
03.
//
04.
comboBox1.DataSource = DataHelper.LoadDataTable();
05.
comboBox1.DisplayMember =
"Nombre"
;
06.
comboBox1.ValueMember =
"Id"
;
07.
08.
//
09.
// cargo la lista de items para el autocomplete
10.
//
11.
comboBox1.AutoCompleteCustomSource = DataHelper.LoadAutoComplete();
12.
comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
13.
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
El autocomplete es una excelente opción para ayudar al usuario en la interacción con la aplicación brindándole un fácil acceso mientras escribe la búsqueda.
0 comentarios: