2011-11-14 25 views
9

Khi tôi nhấn F10 trong chương trình, tiêu điểm sẽ bị mất khỏi cửa sổ chương trình chính của tôi và di chuyển đến thanh trình đơn. Nó chỉ ra hành vi kỳ lạ này là phổ biến trên nhiều ứng dụng Windows.Vô hiệu hóa phím F10 từ tiêu điểm di chuyển đến thanh menu trong chương trình C# Winforms

Tôi nghĩ nó xấu vì phím Alt cũng làm như vậy và chúng tôi mất một khóa chức năng quý giá. Tại sao Windows thực hiện việc này và làm cách nào để tôi có thể giải quyết vụ án cho ứng dụng C# của mình?

+0

FYI, hành vi này cho các phím tắt F10 đã được khoảng từ ít nhất là Windows XP: http://support.microsoft.com/kb/301583 – bobbymcr

+0

Be cẩn thận về việc thay đổi hành vi "xấu xí" mà người dùng của bạn đã mong đợi. –

Trả lời

11

Sử dụng tổ chức sự kiện KeyDown cho mẫu của bạn, và xử lý các Keystroke:

private void form_KeyDown(object sender, KeyEventArgs e) 
{ if(e.KeyData == Keys.F10) 
    { 
     // Do what you want with the F10 key 
     e.SuppressKeyPress = true; 
    } 
} 

Cũng đảm bảo rằng hình thức của bạn KeyPreview được thiết lập là true.

+0

Cảm ơn, điều đó đã xảy ra! –

+0

@Brock xin lỗi vì lỗi chính tả –

+0

@Mark, thực sự Dan (OP) đã thực hiện các chỉnh sửa. Vì anh ấy không có đặc quyền chỉnh sửa, tôi chỉ giúp những thay đổi của anh ấy dính vào. –

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