Триггер комбинированного списка автозаполнения C # SelectionChangeCommited - PullRequest
1 голос
/ 05 ноября 2011

У меня проблемы со свойством автозаполнения в выпадающем списке.Я хочу запускать событие SelectionChangeCommited каждый раз, когда выбираю элемент с помощью автозаполнения, но он не работает.Единственный способ вызвать событие - это когда я использую щелчок мышью и выбираю опцию, или когда комбинированный список фокусируется, и я использую клавиши со стрелками на клавиатуре.Как мне добиться этого поведения с помощью свойства автозаполнения?

Моему списку заданы следующие свойства:

AutoCompleteMode = SuggestAppend
AutoCompleteSource = ListItems
FormattingEnabled = True

Элементы в моем комбо заданы с источником данных.

Есть идеи?Спасибо

Ответы [ 2 ]

2 голосов
/ 05 ноября 2011

Если вы хотите, чтобы оно регистрировало изменение, когда вы начинаете вводить:

Вызовите событие SelectionChangeCommited из события TextChanged.

Если вы никогда этого не делали, наиболееБазовый пример, который я мог найти, был на форумах .net здесь. Конечно, показанные здесь методы являются общими, но очень просты для понимания и применения к вашему коду.

РЕДАКТИРОВАТЬИСПРАВЛЕНО (по данным последнего комментария):

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

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
   comboBox1_SelectionChangeCommitted(sender, e);
}
0 голосов
/ 05 ноября 2011

вы можете использовать трюк и позвонить comboBox1_SelectionChangeCommitted в проверенном событии

когда текст в поле со списком изменяется и пользователь покидает поле со списком, он запускается

  private void comboBox1_Validated(object sender, EventArgs e)
    {
        comboBox1_SelectionChangeCommitted(sender, e);

    }
...