2012-04-24 11 views
7

(WPF का प्रयोग करके) मैं पता लगाने के लिए जब Ctrl + दर्ज मारा जाता है की कोशिश दर्ज करें। तो मैं इस कोड की कोशिश की:का पता लगाने के लिए Ctrl +

if (e.Key == Key.Return && (e.Key == Key.LeftCtrl || e.Key == Key.RightCtrl)) 
{ 
    //Do Something    
} 

जाहिर है यह सही नहीं है, के रूप में यह काम नहीं करता। क्या कोई मेरी मदद कर सकता है, यह समझा सकता है कि सही तरीका क्या होना चाहिए?

thanx

उत्तर

12

जाहिर e.Key एक ही घटना में एक से अधिक अलग अलग मूल्य के बराबर नहीं हो सकता।

आपको KeyEventArgs का उपयोग करने वाली घटनाओं में से एक को संभालने की आवश्यकता है, वहां आपको Control और Modifiers जैसे गुण मिलेगा जो संयोजनों का पता लगाने में आपकी सहायता करेंगे।

KeyPress ईवेंट, जो KeyPressEventArgs का उपयोग करता है, में पर्याप्त जानकारी नहीं है।


ड्रैट, आपने कहा कि डब्ल्यूपीएफ ने नहीं किया था। ऐसा लगता है कि आपको e.KeyboardDevice.Modifiers की आवश्यकता है।

+1

thanx! 'e.KeyboardDevice.Modifiers' मुझे मेरी मदद करनी चाहिए मुझे लगता है :) – Dante1986

6

मुझे लगता है कि आपको एक विशेषकी हैंडलर की आवश्यकता है। मैं थोड़ा एक पाया एक समाधान here.

googled में भेजा लिंक से कोड के बाद आपकी समस्या का समाधान हो सकता है:

void SpecialKeyHandler(object sender, KeyEventArgs e) 
{ 
    // Ctrl + N 
    if ((Keyboard.Modifiers == ModifierKeys.Control) && (e.Key == Key.N)) 
    { 
     MessageBox.Show("New"); 
    } 

    // Ctrl + O 
    if ((Keyboard.Modifiers == ModifierKeys.Control) && (e.Key == Key.O)) 
    { 
     MessageBox.Show("Open"); 
    } 

    // Ctrl + S 
    if ((Keyboard.Modifiers == ModifierKeys.Control) && (e.Key == Key.S)) 
    { 
     MessageBox.Show("Save"); 
    } 

    // Ctrl + Alt + I 
    if ((Keyboard.Modifiers == (ModifierKeys.Alt | ModifierKeys.Control)) && (e.Key == Key.I)) 
    { 
     MessageBox.Show("Ctrl + Alt + I"); 
    } 
} 
+0

thanx इस के लिए बहुत कुछ! – Dante1986

+0

मेरी खुशी, अगर मैं किसी भी मदद से था। :) – Pank

+0

अगर कोई सोच रहा है तो वास्तविक उत्तर यहां है। इसे उत्तर के रूप में चिह्नित किया जाना चाहिए, पहला एक आलसी है। – Yusha

0
if (e.KeyChar == 10) 
      { 
      ///Code 
      } 

या

if ((Char)e.KeyChar == '\n') 
      { 
      ///Code 
      }