it-swarm.com.de

Was ist der Schlüsselcode für "," (Komma) und "." (Punkt) in .NET?

In meiner KeyDownEventHandler muss ich wissen, was die KeyCode für "," und ".".

Ich kann sie nicht finden, darum frage ich. Vielen Dank!

23
Bosak

Ein Schlüssel und ein Zeichen sind nicht dasselbe. Das Tastaturlayout transformiert zwischen ihnen, und diese Transformation ist nicht trivial. Wahrscheinlich machen Sie das Falsche, wenn Sie KeyDown verwenden. Wenn Sie wissen möchten, welches Zeichen ein Benutzer eingegeben hat, verwenden Sie KeyPress, wodurch das bereits übersetzte Zeichen angezeigt wird.

Zum Beispiel ist Keys.Decimal eine Taste auf dem Nummernblock, die . im US-Layout und , im deutschen Layout entspricht. Keys.Oemcomma und OemPeriod sind wahrscheinlich , und . die Buchstaben. Aber bei anderen Layouts kann das anders sein.

24
CodesInChaos

Oemcomma und OemPeriod sehen aus wie gute Kandidaten.

Schauen Sie sich die Keys-Enumeration auf MSDN an.

7
Oded

Überprüfen Sie den Dezimalwert, das ist Ihr Schlüsselcode. 

http://www.asciitable.com/

2
Shaun07776

Ich tat dies:

  1. Erstellt ein WinForm-Projekt mit einem einzelnen Textfeld. 
  2. Der Keydown-Ereignishandler wurde hinzugefügt.
  3. Fügen Sie einen Haltepunkt ein
  4. Verstanden:

enter image description here

2
jgauffin

Verwenden Sie Keys.Oemcomma und Keys.OemPeriod

0
D Stanley

Haben Sie dies versucht "." C

Ein Schwimmerfilter:

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