Como desativar a filtragem de eventos de pressionamento de tecla de uma caixa de diálogo modal

StackOverflow https://stackoverflow.com/questions/8357427

  •  27-10-2019
  •  | 
  •  

Pergunta

Estou tendo um problema estranho e pareço ter que procurar a seguinte causa raiz. Ambiente C # (.NET 2.0):

Meu código está usando a estrutura de algum fornecedor e, ao mesmo tempo, abre uma caixa de diálogo modal.Parece que a estrutura está filtrando nos pressionamentos de tecla "Enter" do aplicativo (provavelmente implementando IMessageFilter).Como consequência, fechar minha caixa de diálogo pressionando o botão "OK" leva a um comportamento estranho - fechar com um clique do mouse em "OK" funciona bem. Alterar o código do framework, infelizmente, não é uma opção.Portanto, eu gostaria de desativar os avisos de que a estrutura "Enter" (e provavelmente "ESC") pressiona na minha caixa de diálogo.Alguém sabe como isso pode ser feito?

Eu "resolvi" o problema.Consulte a Resposta Aceita abaixo.

Foi útil?

Solução

Eu "resolvi" o problema.Esta é a solução para referência futura: definir a propriedade FormBorderStyle do Form (que foi criada na caixa de diálogo modal) como FormBorderStyle.FixedDialog resolveu o problema.Sim, este é um caso típico de Cargo-Cult-Programming, mas após testes completos, a correção funciona de forma confiável.

Outras dicas

Faça um arquivo javascript que digite a tecla Enter pressionada, execute o evento ok no seu modal.Apenas certifique-se de que seu javascript está acima de todos os outros javascript do aplicativo e ele deve ser acionado primeiro.

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