2011-11-30 15 views
5

के लिए इनपुट बनाना मैं विज़ुअल सी # एप्लिकेशन बनाने के लिए विजुअल स्टूडियो 2010 का उपयोग कर रहा हूं, और मैं कुछ प्रकार के टेक्स्ट बॉक्स इनपुट का उपयोग करके कीबोर्ड शॉर्टकट के अनुकूलन के लिए में अपने एप्लिकेशन की प्राथमिकताओं में कुछ विकल्प शामिल करना चाहता हूं। मैं समझता हूं कि कुंजीपटल इनपुट कैसे रिकॉर्ड करें, और इसे उपयोगकर्ता एप्लिकेशन सेटिंग्स में कैसे सहेजना है, लेकिन मुझे कोई कार्यक्षमता नियंत्रण नहीं मिल रहा है जिसमें यह कार्यक्षमता है।एक अनुकूलन कुंजीपटल शॉर्टकट

आईई। कुछ इस तरह:

enter image description here

लेकिन विंडोज़ रूपों का उपयोग कर (नोट: ऊपर app की दुकान से ओएस एक्स के लिए सूद से है)।

क्या इसे संभालने के लिए कोई अंतर्निहित कार्यक्षमता है? क्या कोई अच्छी पुस्तकालय या कस्टम इनपुट मैं उपयोग कर सकता हूं?

अन्यथा, इस तरह कुछ लागू करने के बारे में कोई सुझाव कैसे?

समाधान:

बास बी के जवाब और कुछ अन्य तर्क का उपयोग करना:

private void fShortcut_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode != Keys.Back) 
    { 
     Keys modifierKeys = e.Modifiers; 
     Keys pressedKey = e.KeyData^modifierKeys; //remove modifier keys 

     if (modifierKeys != Keys.None && pressedKey != Keys.None) 
     { 
      //do stuff with pressed and modifier keys 
      var converter = new KeysConverter(); 
      fShortcut.Text = converter.ConvertToString(e.KeyData); 
      //At this point, we know a one or more modifiers and another key were pressed 
      //modifierKeys contains the modifiers 
      //pressedKey contains the other pressed key 
      //Do stuff with results here 
     } 
    } 
    else 
    { 
     e.Handled = false; 
     e.SuppressKeyPress = true; 

     fShortcut.Text = ""; 
    } 
} 
ऊपर

एक तरह से जब एक वैध शॉर्टकट संयोजन की जाँच करके दर्ज किया गया है बताने के लिए है अगर दोनों संशोधक कुंजियों , और एक और कुंजी दबाया जाता है। Stecya के जवाब शामिल करने के लिए अपडेट किया गया:

+0

क्या आप वीएस -2010 के लिए कीबोर्ड शॉर्टकट ढूंढ रहे हैं या अपने आवेदन के लिए? –

+0

मेरे आवेदन के लिए – WilHall

उत्तर

5

आप उपयोगकर्ता एक पाठ बॉक्स में प्राथमिकता दी शॉर्टकट डालें और फिर संभाल KeyDown घटना, उदाहरण के लिए हो सकता है:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     Keys modifierKeys = e.Modifiers; 

     Keys pressedKey = e.KeyData^modifierKeys; //remove modifier keys 

     //do stuff with pressed and modifier keys 
   var converter = new KeysConverter(); 
     textBox1.Text = converter.ConvertToString(e.KeyData); 
} 

संपादित करें।

+0

यह बेकार ढंग से काम किया। नौकरी पाने के लिए मैंने कुछ अन्य तर्कों के साथ इसका इस्तेमाल किया। मैं अंतिम समाधान के साथ सवाल अद्यतन करूंगा। – WilHall

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