2009-09-04 10 views
6

नीचे के लिए Ctrl +एफ कोड (एक और एसओ पद से) है। लेकिन आप Ctrl + फ़ॉरवर्ड स्लैश का पता कैसे लगाते हैं? या Ctrl +/ (ध्यान दें: विभाजन काम नहीं करता है)कैसे Ctrl पता लगाने के लिए - WinForm अनुप्रयोग में फॉरवर्ड स्लैश

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
    { 
     if (1 == 1) //keyData == (Keys.Control | Keys.F)) 
     { 
      MessageBox.Show("What the Ctrl+F?"); 
      return true; 
     } 
     return base.ProcessCmdKey(ref msg, keyData); 
    } 
+0

नियंत्रण संशोधक इसे कम से कम यूएस कीबोर्ड पर विभाजित करने के बजाय प्रश्न चाहता है। –

उत्तर

9

फूट डालो ठीक काम करना चाहिए।

के लिए Ctrl + \:

if (keyData == (Keys.Control | Keys.OemPipe)) 

के लिए Ctrl + /:

if (keyData == (Keys.Control | Keys.OemQuestion)) 

किसी कारण से (यकीन नहीं क्यों), जब आप जाल Ctrl + ये कुंजी, वे "स्थानांतरित" कीमैप पर मैपिंग कर रहे हैं बैठकों।


संपादित करें: इस खोजने के लिए

एक चाल, या किसी भी अन्य प्रमुख। उस विधि में किसी भी पंक्ति पर ब्रेकपॉइंट सेट करें, और keyData मान देखें जब आप उस कुंजी को दबाते हैं जिसे आप जाल करने की कोशिश कर रहे हैं। मैं नियंत्रण मारने के बिना ऐसा करने की सलाह देते हैं। फिर आप Keys के सभी विशिष्ट मान प्राप्त करने के लिए परावर्तक का उपयोग कर सकते हैं, और उपयुक्त मान के साथ "कुंजी" पा सकते हैं।

+0

मेरे लिए काम नहीं किया। नोट: मैं इसके अंदर या उसके आस-पास या उसके बारे में बात कर रहा हूं। संख्यात्मक कीपैड पर नहीं (यदि आप लैपटॉप पर हैं)। किसी संदेशबॉक्स में वास्तविक कुंजी कोड कैप्चर करने का कोई आसान तरीका और फिर संख्यात्मक कोड का उपयोग करके फिर से लिखना? – BuddyJoe

+0

@ टिंडल: मैंने अभी इसका परीक्षण किया है। मेरा नया जवाब आपको सही प्रतिक्रिया देगा। –

+0

मेरे कीबोर्ड पर, बैकस्लैश एंटर से ऊपर है। – recursive