Używam zdarzenia (EditingControlShowing
), aby włączyć autouzupełnianie w kolumnie DataGridViewComboBox.Co za dziwne zachowanie w autouzupełnianiu w kolumnie DataGridViewCombobox?
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewComboBoxEditingControl)
{
ComboBox combo = (ComboBox)e.Control;
((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems;
((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
}
}
Ale ma dziwne zachowanie, kiedy wpisać kilka znaków a potem zostawić komórkę (lub prawy klawisz Tab), wartość ta nie uległa zmianie.
Ale jeśli to powtórzę, wartość zmieni się. Od Here można pobrać kod źródłowy i wideo (EXE) wyjaśniające problem.
Czy możesz mi pomóc, aby działało poprawnie?
Interesujący problem i dobra praca nad poprawką! Dodałem alternatywną poprawkę, która używa nieco mniej kodu, który może ci się przydać. –