AwesomeBar-como o comportamento com o Windows Forms
-
03-07-2019 - |
Pergunta
Eu estou tentando fazer uma caixa de combinação que se comporta um pouco como o Firefox 3 AwesomeBar, com o seguinte comportamento:
- Digite o texto
- Assincronamente trazer de volta os resultados
- Para cima e para baixo seleciona resultados na lista, MAS folhas do texto que foi digitado na caixa de entrada para que o usuário pode continuar a editar a limitar o conjunto de resultados de forma diferente
- Digite incêndios um evento que o formulário pai vai lidar
Eu tenho os resultados assíncronos e filtrando todos trabalhando, mas eu não tenho um método bom para a exibição e selecionar dentro dos resultados.
A caixa de combinação preenche automaticamente a caixa de entrada com o que está selecionado quando você seta para baixo. Falha # 3.
Eu tenho os controles DevExpress, mas a sua caixa de combinação faz a mesma coisa e eu não consigo descobrir como substituir qualquer um.
A LookupEdit não permite a digitação coisas arbitrária. Nem um PopupContainerEdit.
Eu quero um comportamento que é como uma caixa de texto com uma caixa de listagem abaixo dela, e up / down eventos na caixa de texto são passadas para a caixa de listagem. Mas se eu tentar fazer um controle personalizado que combina os dois assim, eu não tenho idéia como "float" caixa de listagem como a lista suspensa em uma caixa de combinação normal.
Clues muito apreciada!
Solução
Você pode precisar usar uma caixa de texto em vez de uma caixa de combinação porque usar as teclas de seta é selecionar valores da lista combos e substituir o seu valor atual. Usando a caixa de texto que você pode fazer você pesquisa no evento TextChanged e você pode armazenar o valor atualmente digitado, substituindo o evento KeyPress para coletar e armazenar as chaves que o usuário digitou.
Você lista de sobreposição de valores teria que ser auto elaborado em caso de tinta.
Isto pode parecer excessivamente complicado, mas você provavelmente precisará largar o controle de combinação e implementar algumas das suas funções a si mesmo.
Outras dicas
Estou usando o controle AutoComplete de Skybound. É grátis. Ele pode ser personalizado, para que ele possa aproximar o comportamento do AwesomeBar.