2009-08-14 10 views
13

मेरी WPF अनुप्रयोग में, मैं कैसे पारी, ctrl और मेरे माउस ईवेंट हैंडलर में alt चाबियों का राज्य मिलता है? मुझे MFC में याद रखना प्रतीत होता है आप माउस ईवेंट से वह जानकारी प्राप्त कर सकते हैं।माउस ईवेंट से शिफ्ट/ctrl/alt राज्य प्राप्त करना?

उत्तर

19

मान लीजिए कि आप अभी भी माउस इवेंट हैंडलर में हैं, तो आप Keyboard.Modifiers के मान की जांच कर सकते हैं। मुझे नहीं लगता कि घटना से संशोधक जानकारी प्राप्त करने के लिए वैसे भी है, इसलिए आपको सीधे कीबोर्ड से पूछताछ करनी होगी।

+3

कैसे कष्टप्रद ... अगर मुझे समझ में सही ढंग से इसका मतलब है कि अगर जब उपयोगकर्ता ईवेंट को निकाल दिया जाता है और जब ईवेंट हैंडलर कुंजीपटल से पूछताछ करता है, तब उपयोगकर्ता कीबोर्ड के माध्यम से जाने देता है, तो यह गलत कुंजी राज्यों का पता लगाएगा। –

+1

@ एम। डडली इससे कोई फर्क नहीं पड़ता कि आप कीबोर्ड स्थिति या डब्ल्यूपीएफ कैप्चर करते हैं ... माउस और कीबोर्ड अलग हैं, इसलिए दौड़ की स्थिति अपरिहार्य है। –

16

एंडी के उत्तर के अनुसार, आप कीबोर्ड का उपयोग करते हैं। मॉडिफायर। मुझे लगता है मैं अपने ईवेंट हैंडलर में एक छोटे से उदाहरण पोस्ट करेंगे

कुछ इस तरह काम करना चाहिए लगा:

private void MyExampleButton_Click(object sender, RoutedEventArgs e) 
{ 
    if ((Keyboard.Modifiers & ModifierKeys.Control) > 0) { 
     System.Diagnostics.Debug.WriteLine("Control is pressed"); 
    } else { 
     System.Diagnostics.Debug.WriteLine("Control is NOT pressed"); 
    } 
} 

सादर, माइक

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