2012-08-16 14 views
7

मेरे पास निम्न कोड है जो संदेश/बॉक्स दबाए जाने पर संदेशबॉक्स नहीं दिखाता है।एंटर कुंजी का पता लगाएं C#

किसी अन्य कुंजी (यानी अक्षरों/संख्याओं) के लिए संदेशबॉक्स गलत दिखाता है।

private void cbServer_TextChanged(object sender, EventArgs e) 
{ 
    if (enterPressed) 
    { 
     MessageBox.Show("Enter pressed"); 
    } 
    else 
     MessageBox.Show("False"); 
} 

private void cbServer_Keydown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return) 
    { 
     enterPressed = true; 
     MessageBox.Show("Enter presssed: " + enterPressed); 

    } 
    else 
     enterPressed = false; 
} 

कोई विचार?

संपादित करें: ऊपर कोड, मैंने सोचा था कि समस्या _Keydown के साथ भी थी, इसलिए मैंने केवल इसे पोस्ट किया।

आपके प्रपत्र डिजाइनर कक्षा में
+6

कैसे संदेश बॉक्स शो झूठी करता है में दिखाया गया है किसी भी कुंजी पता लगाने के लिए। मुझे यह –

+0

नहीं देख रहा है। क्या आपने डिबगिंग की कोशिश की है? आपको OEMReturn का उपयोग करना चाहिए या यह भी –

+0

सीबी सर्वर है किस प्रकार का नियंत्रण है? एक combobox? और एक wpf या winforms ऐप है? – Steve

उत्तर

5

इसका कारण यह है जब है आप दबाएंTextChanged ईवेंट आग नहीं लगेगा।

+0

धन्यवाद, इसे हल किया गया। – k1f1

7

(formname.designer.cs) इस जोड़ें:

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Login_KeyPress); 

और रीढ़ की हड्डी कोड के लिए इस कोड को जोड़ने (formname.cs):

void Login_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar == (char)13) 
      MessageBox.Show("ENTER has been pressed!"); 
     else if (e.KeyChar == (char)27) 
      this.Close(); 
    } 
+0

लगता है, यह आपके फॉर्म को बंद करने के लिए एस्केप कुंजी भी संभालता है, मुझे लगता है कि यह उपयोगी हो सकता है –

+0

यह.cbServer.KeyPress + = new System.Windows.Forms.KeyPressEventHandler (यह .cbServer_KeyPress); यह पहले से ही designer.cs फ़ाइल में था ... – k1f1

+0

क्षमा करें मुझे लगता है कि कुंजीपटल नहीं कीडाउन का उपयोग कर रहा है .. इसका उपयोग करने का प्रयास करें, धन्यवाद – k1f1

0
private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
      if (e.Key == Key.Enter) 
      { 
       MessageBox.Show("Enter key pressed"); 
      } 
      else if (e.Key == Key.Space) 
      { 
       MessageBox.Show("Space key pressed"); 
      } 
} 

उपयोग PreviewKeyDown घटना से पहले पाठ बॉक्स या इनपुट

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