Pergunta

Para um projeto que eu construí uma coluna DataGridView personalizado que contém controles de NumericUpDown. Ele é implementado semelhante à sugestão de Microsoft

A coluna funciona bem no Windows XP. Ele aceita os dígitos inseridos e separador decimal. No Windows Vista que tenho o problema estranho que o controle só aceita o separador decimal digitado pelo teclado numérico, mas não a partir do bloco principal do teclado.

Tenho de acrescentar que o trabalho que eu, com configurações de cultura Alemão (Suíça), sob o Windows Vista e o layout de teclado alemão (Suíça) é ativado. O separador decimal na Suíça é.

Alguém tem uma idéia para a razão e talvez a solução? Muito obrigado!

Michael

Editar: Eu encontrei a solução para o meu problema.

  1. Para esclarecer a situação um pouco mais. O controle NumericUpDown eu uso implementos IDataGridViewEditingControl e herda de NumericUpDown. Por causa de IDataGridViewEditingControl eu implementar o EditingControlWantsInputKey método. E na implementação deste método que eu encontrei o meu erro ou o que deu errado.

  2. No método I inspecionados as chaves entrou e decidiu se o controlo teve que lidar com isso. Mas para o separador decimal eu esperava única Keys.Decimal . No meu caso especial (errado) a chave não poderia ser combinados. O que estava faltando era procurar Keys.OemPeriod também. E essa foi a correção.

Foi útil?

Solução

Você pode por favor cole o código OnKeyDown e / ou OnKeyPress? Pelo menos o código de filtragem de chave relevante. Isso fará com que seja mais fácil de detectar quaisquer problemas.

BTW, eu uso normalmente tanto um inglês britânico e português brasileiro teclados, então eu tive minha parte destas questões. Esse tipo de forças que você se tornar um especialista em localização:)

Editar : Oh, desculpe, apenas re-lido e compreendido que você está usando o controle de estoque NumericUpDown. você pode apontar-me para o código de coluna para que eu possa experimentá-lo aqui? Provavelmente, o local não está recebendo conjunto para o controle, e você terá que fazê-lo manualmente em algum ponto.

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