2008-11-25 32 views
34

Hai đối số sự kiện quan trọng là các lớp KeyEventArgsPreviewKeyDownEventArgs mỗi thuộc tính có hai thuộc tính, KeyCodeKeyData, cả hai đều là loại khóa liệt kê.Sự khác biệt giữa các thuộc tính KeyCode và KeyData trên đối tượng sự kiện khóa .NET WinForms là gì?

Sự khác biệt giữa hai thuộc tính này là gì? Các giá trị trong chúng có khác nhau không? Nếu vậy, khi nào và tại sao?

Trả lời

42

KeyCode là một liệt kê đại diện cho tất cả các phím có thể có trên bàn phím. KeyDataKeyCode kết hợp với các công cụ sửa đổi (Ctrl, Alt và/hoặc Shift).

Sử dụng KeyCode khi bạn không quan tâm đến công cụ sửa đổi, KeyData khi bạn thực hiện.

7

Sự khác biệt mà tôi đã quan sát được là giá trị trong KeyCode chỉ giữ giá trị Keys điều tra cho khóa đã kích hoạt quá trình kích hoạt sự kiện hiện tại. Mặt khác, KeyData sẽ chứa giá trị OR hợp lý của giá trị trong KeyCode với bất kỳ phím bổ trợ nào (CTRL, SHIFT, ALT, v.v.) được giữ tại thời điểm đó.

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