web-dev-qa-db-fra.com

Quel est le KeyCode pour "," (virgule) et "." (Point) dans .NET?

Dans ma KeyDownEventHandler j'ai besoin de savoir quelle est la KeyCode pour "," et ".".

Je ne peux pas les trouver c'est pourquoi je demande. Merci!

23
Bosak

Une clé et un personnage ne sont pas la même chose. La disposition du clavier se transforme entre eux, et cette transformation n'est pas anodine. Vous faites probablement la mauvaise chose lorsque vous utilisez KeyDown. Si vous voulez savoir quel caractère un utilisateur a entré, vous devez utiliser KeyPress, qui donne le caractère déjà traduit.

Par exemple, Keys.Decimal est une clé sur le pavé numérique qui correspond à . sur la présentation américaine et , à la disposition allemande. Keys.Oemcomma et OemPeriod sont susceptibles de , et . ci-dessous les lettres. Mais sur d'autres mises en page, cela peut être différent.

24
CodesInChaos

Oemcomma et OemPeriod ressemblent à de bons candidats.

Examinez l’énumération Keys sur MSDN.

7
Oded

Vérifiez la valeur décimale, c'est votre code clé. 

http://www.asciitable.com/

2
Shaun07776

J'ai fait ça:

  1. Création d'un projet WinForm avec une seule zone de texte. 
  2. Ajout du gestionnaire d'événement keydown.
  3. Mettre un point de rupture en elle
  4. Je l'ai:

enter image description here

2
jgauffin

Utilisez Keys.Oemcomma et Keys.OemPeriod

0
D Stanley

Avez-vous essayé cela "." C

Un filtre à flotteur:

Select Case e.KeyChar
    Case "0"c To "9"c
    Case "."c
        If .Text.Contains(".") Then
            e.Handled = True
        End If
    Case ChrW(Keys.Delete), ChrW(Keys.Back)
    Case Else
        e.Handled = True
End Select
0
Champu