2009-11-11 17 views
5

मेरे एप्लिकेशन में एक मुख्य विंडो है जिसमें लगभग 7 टैबइटम के साथ टैबकंट्रोल होता है। प्रत्येक टैब के अंदर Item मैं UserControl डाल दिया।मेरे आवेदन में सक्रिय टैब को बदलने के लिए शॉर्टकट

मुझे यह पसंद है (कोई सक्रिय टैब या नियंत्रण चाहे) जब उपयोगकर्ता कुंजी के संयोजन को दबाता है तो उपयोगकर्ता-इंटरफ़ेस किसी विशिष्ट टैब पर कूदता है। यही है, वही व्यवहार जो फ़ायरफ़ॉक्स: alt + 1 पहले टैब पर जाता है, alt + n एन टैब पर जाता है।

मैं इसे कैसे प्राप्त कर सकता हूं? या ... मुझे खोजना शुरू करना चाहिए?

मैं आपको कोई कोड नहीं दिखा सकता क्योंकि समस्या यह है कि मुझे नहीं पता कि कैसे शुरू करना है।

धन्यवाद

+0

मुझे लगता है कि तुम नहीं 'Alt-42' को अनुमति देना चाहते हैं। – SLaks

+0

+1 क्योंकि यह स्पष्ट रूप से एक गैर-मामूली समस्या है। –

+0

@ स्लेक्स: शायद, कारण 42 जीवन, ब्रह्मांड और सब कुछ का जवाब है ... और हम भविष्य के कीबोर्ड के बारे में कुछ नहीं जानते हैं। : डी – Jonathan

उत्तर

7

सेट प्रपत्र के true को KeyPreview संपत्ति, ओवरराइड प्रपत्र के OnKeyDown (या OnKeyUp) विधि, और निम्न कोड में डाल दिया: (untested)

protected override void OnKeyDown(KeyEventArgs e) { 
    base.OnKeyDown(e); 
    if (e.Alt && e.KeyCode > '0' && e.KeyCode <= '9') { 
     tabControl.SelectedIndex = (int)(e.KeyCode - '1'); 
     e.Handled = true; 
    } 
} 
+1

उत्कृष्ट। यह काम करना चाहिए। –

+2

परीक्षण और पूरी तरह से काम कर रहा है। मैंने केवल e.KeyCodeue द्वारा e.KeyCode बदल दिया। धन्यवाद। – Jonathan

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