Pergunta

Eu estou tentando fazer uma caixa de combinação que se comporta um pouco como o Firefox 3 AwesomeBar, com o seguinte comportamento:

  1. Digite o texto
  2. Assincronamente trazer de volta os resultados
  3. 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
  4. 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!

Foi útil?

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.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top