2011-07-12 26 views
6

Tôi có một Windows.Form và có quá trình ProcessCmdKey quá mức. Tuy nhiên, tính năng này hoạt động với tất cả các phím F ngoại trừ F10. Tôi đang cố gắng tìm kiếm lý do tại sao ProcessCmdKey không được gọi khi tôi nhấn F10 trên Biểu mẫu của tôi.Phím F10 không bị bắt

Ai đó có thể vui lòng cho tôi mẹo về cách tôi có thể tìm ra nguyên nhân không?

Best Regards, Thomas

+0

Bạn đã tắt F-Lock chưa? –

+0

Hãy thử sử dụng sự kiện KeyDown thay vào đó, nó sẽ hoạt động. – Tigran

Trả lời

8

Windows vẫn coi F10 khác nhau. Giải thích được đưa ra trong phần "Ghi chú" here on MSDN

+0

Anh ấy đang sử dụng ProcessCmdKey thay vì KeyDown mà sẽ hoạt động tốt. –

1

Tôi vừa thử nghiệm mã này bằng Windows Forms trên .NET 4 và tôi nhận được hộp thông báo như mong đợi.

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == Keys.F10) 
    { 
     MessageBox.Show("F10 Pressed"); 
     return true; 
    } 
    return base.ProcessCmdKey(ref msg, keyData); 
} 
+1

Khi tôi tạo Biểu mẫu mới, nó cũng đang hoạt động ở đó. Nhưng tôi phải tìm hiểu, tại sao F10 không hoạt động với biểu mẫu hiện tại. – BennoDual

1

Có thể là tôi có vấn đề của bạn, vì vậy cố gắng đoán:

Bạn có thiết lập KeyPreview tài sản của WindowsForm của bạn để true?

Điều này sẽ cho phép khả năng sử dụng WindowsForm tiến hành các sự kiện nhấn phím trước khi chúng chuyển sang điều khiển giữ tiêu điểm trên giao diện người dùng trong thời điểm chính xác đó.

Hãy cho tôi biết nếu nó hoạt động, xin vui lòng.

Trân trọng.

+1

Có - Tôi đã đặt KeyPreview thành true - nhưng nó không hoạt động. – BennoDual

+0

"Tuy nhiên, điều này làm việc với tất cả các F-Keys ngoại trừ F10", tại thời điểm này, cá nhân tôi không thấy bất kỳ câu trả lời nào khác như nếu bạn có một số ứng dụng trên máy tính của bạn được cài đặt móc khóa đó: Đa máy tính để bàn, một số ứng dụng phương tiện ... Bạn có thể thử chạy ứng dụng của mình trên PC khác không? – Tigran

+0

Chỉ tò mò @ t.kehl, đó có phải là điều gì đó liên quan đến bình luận cuối cùng của tôi không? Cuase, bây giờ thực sự suy nghĩ về điều đó, tôi hết hạn somethign như thế trong VS 2010 quá, khi tôi cài đặt một số applicaitons installe móc, một số phím shotcut ngừng làm việc. – Tigran

0

Trong trường hợp của tôi, tôi đã cố gắng để phù hợp với e.key để system.windows.input.key.F10 và nó đã không làm việc (althougth F1 thru F9 đã làm)

Select Case e.Key 

Case is = Key.F10 
... do some stuff 

end select 

Tuy nhiên, tôi đã thay đổi nó đến

Select Case e.Key 

Case is = 156 
... do some stuff 

end select 

và hoạt động.

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