2011-11-14 17 views
9

में मेनू बार पर फोकस करने से F10 कुंजी को अक्षम करना जब मैं अपने प्रोग्राम में F10 दबाता हूं, तो मेरी मुख्य प्रोग्राम विंडो से फोकस खो जाता है, और मेनू बार में जाता है। यह पता चला है कि यह अजीब व्यवहार कई विंडोज ऐप्स में आम है।सी # विनफॉर्म प्रोग्राम

मुझे लगता है कि यह बदसूरत है क्योंकि Alt कुंजी एक ही चीज़ करता है, और हम एक बहुमूल्य फ़ंक्शन कुंजी खो देते हैं। विंडोज ऐसा क्यों कर रहा है, और मैं अपने सी # ऐप के मामले को कैसे हल कर सकता हूं?

+0

FYI करें, F10 शॉर्टकट के लिए इस व्यवहार के बाद से कम से कम Windows XP के आसपास किया गया है इसे हल हो सकता है: http://support.microsoft.com/kb/301583 बनें – bobbymcr

+0

"बदसूरत" व्यवहार को बदलने के बारे में सावधान रहें जो आपके उपयोगकर्ताओं ने अपेक्षा की है। –

उत्तर

11

उपयोग अपने फार्म के लिए KeyDown घटना है, और संभाल कीस्ट्रोक:

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

भी सुनिश्चित करें कि आपके रूपों KeyPreview सही पर सेट किया जाता है।

+0

धन्यवाद, यह चाल है! –

+0

@ ब्रोक –

+0

@ मार्क के लिए क्षमा करें, वास्तव में दान (ओपी) ने सुधार किए हैं। चूंकि उसके पास संपादन विशेषाधिकार नहीं हैं, इसलिए मैंने बस अपने बदलावों की छड़ी में मदद की। –

0
+0

वह दृष्टिकोण एक अधिक जटिल मामले के लिए है जहां आप "सिस्टम" कीबोर्ड शॉर्टकट को ओवरराइड करना चाहते हैं, उदा। विंडोज कुंजी + डी। – bobbymcr

संबंधित मुद्दे