private void dgvItems_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { TextBox celda = e.Control as TextBox; ArticuloPlanta artPla = (ArticuloPlanta)dgvItems.Rows[dgvItems.CurrentCell.RowIndex].Tag; switch (dgvItems.CurrentCell.OwningColumn.Name) { case "clmArt": Cargador.cargarArticuloPlanta(celda, planta); break; case "clmDesc": Cargador.cargarArticulosDePlanta(celda, planta); break; case "clmLote": if (artPla != null) { Cargador.cargarLotes(celda, artPla.TipoArticulo, 0); } break; case "clmPresent": Cargador.cargarPresentaciones(celda); break; case "clmPrecio": if (artPla != null) { Cargador.cargarPrecios(celda, artPla); } break; default: var lista = new List <string>(); AutoCompleteStringCollection listaAuto = new AutoCompleteStringCollection(); listaAuto.AddRange(lista.ToArray()); celda.AutoCompleteCustomSource = listaAuto; celda.AutoCompleteMode = AutoCompleteMode.SuggestAppend; celda.AutoCompleteSource = AutoCompleteSource.CustomSource; break; } }