Trong số KeyDown
EventHandler
Tôi cần biết KeyCode
cho "," và "." Là gì.Mã khóa cho "," (dấu phẩy) và "." (Dấu chấm) trong .NET là gì?
Tôi không thể tìm thấy chúng tại sao tôi hỏi. Cảm ơn!
Trong số KeyDown
EventHandler
Tôi cần biết KeyCode
cho "," và "." Là gì.Mã khóa cho "," (dấu phẩy) và "." (Dấu chấm) trong .NET là gì?
Tôi không thể tìm thấy chúng tại sao tôi hỏi. Cảm ơn!
Khóa và ký tự không giống nhau. Bố cục bàn phím chuyển đổi giữa chúng và biến đổi đó không phải là tầm thường. Có lẽ bạn đang làm điều sai khi sử dụng KeyDown
. Nếu bạn muốn biết người dùng nào đã nhập, bạn nên sử dụng KeyPress
, ký tự này sẽ cung cấp cho ký tự đã được dịch.
Ví dụ Keys.Decimal
là một khóa trên bàn phím số tương ứng với .
trên bố cục của Hoa Kỳ và ,
trên bố cục của Đức. Keys.Oemcomma
và OemPeriod
có khả năng ,
và .
yêu cầu các chữ cái. Nhưng trên các bố trí khác có thể khác nhau.
Keys.Deciaml là cho numpad những gì cho thập phân thứ hai ?? –
Không có "số thập phân thứ hai". Có một khóa cho * dấu phẩy * và một cho * dấu chấm *, nhưng cái nào trong số chúng tạo dấu thập phân phụ thuộc vào ngôn ngữ. Tôi cũng khá chắc chắn rằng việc đặt câu hỏi này có nghĩa là bạn đã đi đúng hướng. Bạn nên làm việc với các nhân vật, không phải chìa khóa. – CodesInChaos
Oemcomma
và OemPeriod
trông giống như ứng cử viên giỏi.
Nhìn vào số Keys
enumeration trên MSDN.
Tôi đã làm điều này:
Sử dụng Keys.Oemcomma
và Keys.OemPeriod
Các bạn đã thử này c
Một bộ lọc phao "":
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
Có cú pháp C# cho điều này không? – Bosak
Bạn có chắc chắn bạn muốn gõ 'KeyDown' và không phải là 'KeyPress' xử lý? – CodesInChaos
Trình xử lý sự kiện KeyDown xử lý các nét chính, chứ không phải biểu diễn của chúng trong hệ thống, điều gì phụ thuộc vào cài đặt vùng. Để xử lý charakter, hãy sử dụng sự kiện KeyPress. – pistipanko