2012-01-18 28 views
21

Trong số KeyDownEventHandler 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!

+0

Bạn có chắc chắn bạn muốn gõ 'KeyDown' và không phải là 'KeyPress' xử lý? – CodesInChaos

+4

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

Trả lời

19

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.OemcommaOemPeriod có khả năng ,. yêu cầu các chữ cái. Nhưng trên các bố trí khác có thể khác nhau.

+0

Keys.Deciaml là cho numpad những gì cho thập phân thứ hai ?? –

+1

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

7

OemcommaOemPeriod trông giống như ứng cử viên giỏi.

Nhìn vào số Keys enumeration trên MSDN.

2

Tôi đã làm điều này:

  1. Tạo một dự án WinForm với một hộp duy nhất.
  2. Đã thêm trình xử lý sự kiện keydown.
  3. Đặt một điểm break trong nó
  4. Got này:

enter image description here

0

Sử dụng Keys.OemcommaKeys.OemPeriod

0

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 
+0

Có cú pháp C# cho điều này không? – Bosak

Các vấn đề liên quan