Включать только определенные элементы в тип CComboBox? - PullRequest
2 голосов
/ 23 февраля 2010

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

1 Ответ

1 голос
/ 24 февраля 2010

Так же, как простая (и, возможно, уродливая) идея "хитрости": можете ли вы замаскировать элементы, которые вы хотите исключить из поиска типа вперед, с помощью какого-либо специального символа, например *, в качестве первого символа, например? (Таким образом, вы должны добавить в ComboBox *MyItemText вместо MyItemText.) Если ваш список элементов должен быть отсортирован, вы должны отключить свойство автосортировки ComboBox и выполнить собственную сортировку (без *) перед тем, как Вы добавляете элементы в ComboBox. Пользователи также признают, что этот элемент нельзя найти по типу впереди (если это имеет смысл или должно быть полезно в вашем приложении).

CComboBox не имеет никакого события Edit или TextChanged. Таким образом, я предполагаю, что для другого лучшего решения вы должны пройти сложный путь, оценить отдельные события клавиатуры и выполнить собственный поиск по списку элементов. У меня нет лучшей идеи.

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