none
ComboBox DroppedDown = true RRS feed

  • Pergunta

  • Pessoal, tenho uma classe hierárquica para um ComboBox.

    No evento Enter dessa classe eu inseri o comando "This.DroppedDown = true" p/ q o ComboBox abre td vez q eu entrar no ComboBox via teclado.

    Até aí tá funcionando c/ o teclado, mas o problema é q qdo acesso o objeto via mouse o ComboBox abre (dropped) 2x.

    O q gostaria era d saber dentro do evento enter se o objeto ComboBox foi selecionado via teclado ou via mouse e se foi via mouse ñ vou dar o DroppedDown novamente.

    Quero dar o DroppedDown somente se o objeto ComboBox tenho sido acessado via teclado.

    Desde já obrigado.


    Frederico Oliva

    terça-feira, 27 de setembro de 2016 00:20

Respostas

  • Bom dia Frederico Oliva,

    Determinar se a ação foi feita pelo mouse ou teclado não é muito simples.

    Você pode tentar fazer Mouse and Keyboard Hook, e no evento SelectionChanged verifique de qual dos dois a mensagem foi enviada.

    Outra maneira seria capturar a posição do mouse. Mas há a possibilidade do mouse estar exatamente sobre a combobox quando o teclado estiver sendo utilizado.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    quarta-feira, 28 de setembro de 2016 14:17
    Moderador

Todas as Respostas

  • Você pode usar uma variavel para identificar se foi pressionado o ENTER via teclado Key == 13 caso isso ocorra no seu objeto você pode armazenar um valor em uma variavel publica dentro do FORM e usa-la dentro do outro objeto lembrando de zera-la ou limpa-la dependendo do seu tipo quando usa-la para a sua verificação dentro da rotina que devera realizar o teste dessa forma você fica com sua rotina redondinha.

    Espero ter ajudado.


    Junior

    terça-feira, 27 de setembro de 2016 10:25
  • Bom dia Jr.,

    Primeiro obrigado pela resposta.

    Ñ existe nenhum função do próprio sistema e armazene a última tecla ou clique pressionado?

    No meu caso é até relativamente simples pois ñ quero q dê o DroppedDown = true se o último manuseio tenha sido por clique do mouse.


    Frederico Oliva

    terça-feira, 27 de setembro de 2016 10:28
  • Bom dia Frederico Oliva,

    Determinar se a ação foi feita pelo mouse ou teclado não é muito simples.

    Você pode tentar fazer Mouse and Keyboard Hook, e no evento SelectionChanged verifique de qual dos dois a mensagem foi enviada.

    Outra maneira seria capturar a posição do mouse. Mas há a possibilidade do mouse estar exatamente sobre a combobox quando o teclado estiver sendo utilizado.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    quarta-feira, 28 de setembro de 2016 14:17
    Moderador