Nel mio KeyDown
EventHandler
ho bisogno di sapere qual è il KeyCode
per "," e ".".Qual è il KeyCode per "," (virgola) e "." (Punto) in .NET?
Non riesco a trovarli per quello che chiedo. Grazie!
Nel mio KeyDown
EventHandler
ho bisogno di sapere qual è il KeyCode
per "," e ".".Qual è il KeyCode per "," (virgola) e "." (Punto) in .NET?
Non riesco a trovarli per quello che chiedo. Grazie!
Una chiave e un carattere non sono la stessa cosa. Il layout della tastiera si trasforma tra loro, e quella trasformazione non è banale. Probabilmente stai facendo la cosa sbagliata quando usi KeyDown
. Se vuoi sapere quale personaggio è stato inserito da un utente, devi usare KeyPress
, che fornisce il carattere già tradotto.
Ad esempio Keys.Decimal
è una chiave sul tastierino numerico che corrisponde a .
nel layout degli Stati Uniti e ,
nel layout tedesco. Keys.Oemcomma
e OemPeriod
sono probabilmente ,
e .
. Ma su altri layout che potrebbero essere diversi.
Keys.Deciaml è per il tastierino numerico per il secondo decimale? –
Non c'è "secondo decimale". C'è una chiave per * virgola * e una per * periodo *, ma quale di loro produce il separatore decimale dipende dalla locale. Sono anche abbastanza sicuro che fare questa domanda significa che sei già sulla strada sbagliata. Dovresti lavorare con i caratteri, non con le chiavi. – CodesInChaos
Oemcomma
e OemPeriod
sembrano buoni candidati.
Vedere lo Keys
enumeration su MSDN.
ho fatto questo:
Usa Keys.Oemcomma
e Keys.OemPeriod
Hai provato questo c
Un filtro galleggiare "":
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
Esiste una sintassi C# per questo? – Bosak
Sei sicuro che si desidera utilizzare il 'KeyDown' e non il gestore' KeyPress'? – CodesInChaos
Il gestore di eventi KeyDown gestisce i tratti chiave, non la loro rappresentazione nel sistema, ciò che dipende dalle impostazioni regionali. Per gestire charakter, usa l'evento KeyPress. – pistipanko