Способ заставить AutoComplete работать в DataGridViewComboBoxColumn? - PullRequest
1 голос
/ 28 августа 2010

Я уже успешно получил автозаполнение, работая в обычном поле со списком.Я использовал событие выхода, чтобы установить выделение на ноль, если пользователь вводит что-то, чего нет в списке.

Теперь я хочу сделать это в DataGridViewComboBoxColumn.Однако обычные свойства, такие как AutoCompleteMode и AutoCompleteSource, отсутствуют.Я слышал, что есть способ как-то это сделать с помощью приведения, но я не слишком хорошо читаю инструкции на языке VB.В идеале я хочу создать новый производный класс, чтобы я мог легко использовать эту вещь снова и снова.

Другая проблема заключается в том, что мне нужно знать, какое событие перехватить, чтобы сбросить комбинированный список к его старому значению или нулюесли предмет отсутствует в списке.

Помощь будет принята с благодарностью!Спасибо.

Ответы [ 2 ]

5 голосов
/ 07 января 2011

Вы можете получить эту функцию, реализовав событие EditingControlShowing сетки.По сути, когда вы редактируете столбец комбинированного списка, элемент управления для редактирования является комбинированным списком, поэтому, используя приведение, вы можете настроить свойства для автозаполнения

void grdPerformanceScenario_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        if (e.Control is ComboBox)
        {
            (e.Control as ComboBox).AutoCompleteMode = AutoCompleteMode.Suggest;
            (e.Control as ComboBox).AutoCompleteSource = AutoCompleteSource.ListItems;
        }
    }
0 голосов
/ 06 мая 2013

Существует AutoComplete для DataGridViewComboBoxColumn.

Например:

DataGridViewComboBoxColumn comboBox = DataGridViewComboBoxColumn();
combobox.AutoComplete = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...