Вопрос

Я пытаюсь создать поле со списком, похожее на Awesomebar Firefox 3, со следующим поведением:

<Ол>
  • Введите текст
  • Асинхронно возвращать результаты
  • Вверх и вниз выбираются результаты в списке, НО оставляет текст, введенный в поле ввода, чтобы пользователь мог продолжить редактирование, чтобы по-разному ограничить набор результатов
  • Enter запускает событие, которое будет обрабатывать родительская форма
  • У меня есть асинхронные результаты и все работающие фильтры, но у меня нет хорошего метода для отображения и выбора в результатах.

    Поле со списком автоматически заполняет поле ввода тем, что выбрано, когда вы нажимаете стрелку вниз. Ошибка № 3.

    У меня есть элементы управления DevExpress, но их поле со списком делает то же самое, и я не могу понять, как их переопределить.

    LookupEdit не позволяет вводить произвольные вещи. Ни один не делает PopupContainerEdit.

    Мне нужно поведение, похожее на текстовое поле со списком под ним, и события вверх / вниз в текстовом поле передаются в список. Но если я попытаюсь создать собственный элемент управления, объединяющий эти два типа, я понятия не имею, как «плавать»; список, как раскрывающийся список в обычном поле со списком.

    Подсказки очень ценятся!

    Это было полезно?

    Решение

    Возможно, вам придется использовать текстовое поле вместо поля со списком, потому что с помощью клавиш со стрелками вы выбираете значения из списка комбо и перезаписываете свое текущее значение. Используя текстовое поле, вы можете выполнить поиск в событии TextChanged и сохранить текущее набранное значение, переопределив событие KeyPress для сбора и сохранения ключей, введенных пользователем.
    Ваш всплывающий список значений должен быть сам нарисован в событии рисования.

    Это может показаться слишком сложным, но вам, вероятно, нужно отказаться от комбинированного элемента управления и самостоятельно реализовать некоторые из его функций.

    Другие советы

    Я использовал элемент управления автозаполнением из Skybound. Это бесплатно. Его можно настроить так, чтобы он мог приближаться к поведению из Awesomebar.

    http://dev.skybound.ca/Products/AutoComplete/ р>

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top