2009-11-28 17 views
9

में एंटर कुंजी को कैप्चर करने में सक्षम नहीं है जब उपयोगकर्ता टेक्स्ट बॉक्स में नंबर दर्ज कर रहा है, तो मैं उन्हें फॉर्म पर कहीं और अपडेट बटन दबाकर एंटर दबाकर अनुकरण करने में सक्षम होना चाहूंगा। मैंने इसे कई स्थानों पर ऑनलाइन देखा है, और ऐसा लगता है कि मैं चाहता हूं कि कोड, लेकिन यह काम नहीं कर रहा है। जब टेक्स्ट बॉक्स में डेटा डाल दिया गया है और एंटर दबाया जाता है, तो मुझे बस एक डिंग मिलता है। मैं क्या गलत कर रहा हूं? (विजुअल स्टूडियो 2008)WinForms टेक्स्ट बॉक्स

private void tbxMod_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     btnMod.PerformClick(); 
    } 
} 
+1

इस समाधान का प्रयास करें ... यह काम कर रहा .... private void button1_Click (वस्तु प्रेषक, EventArgs ई) { MessageBox.Show ("बटन दबाया जाता है"); } निजी शून्य textBox1_KeyPress (वस्तु प्रेषक, KeyPressEventArgs ई) {if (e.KeyChar == '\ r') { button1.PerformClick(); } } यहां कोड जो आपको टेक्स्टबॉक्स में एंटर दबाते समय बटन दबाएगा .... इसे जांचें .... –

उत्तर

5

कुछ विचार:

  • करता प्रपत्र एक स्वीकार बटन (Form पर सेट) कि सेवानिवृत्त
  • करता पाठ बॉक्स है चोरी किया जा सकता है है सत्यापन सक्षम है और यह असफल रहा है? इसे बंद करने का प्रयास करें
  • क्या कुछ कुंजी-पूर्वावलोकन सक्षम है?
+0

ए) नोप बी) मैं int32.tryparse का उपयोग कर _Click फ़ंक्शन के भीतर इनपुट को मान्य कर रहा हूं, लेकिन क्लिक ईवेंट होने के बाद ही यह होता है। मैंने पूरे फ़ंक्शन पर टिप्पणी करने और बस एक संदेश बॉक्स डालने की कोशिश की और यह अभी भी काम नहीं कर सका। 3) फॉर्म नियंत्रण पर देखा - मुख्य पूर्वावलोकन बंद है। मैं नीचे दिए गए अगले चार प्रतिक्रियाओं के माध्यम से भी चला गया। अब तक कोई चाल नहीं है। –

0

प्रपत्र गुण> तुरंत लाइन btnMod.PerformClick(); के बाद सच

1

true को e.Handled सेट करने के लिए KeyPreview निर्धारित किया है।

उम्मीद है कि इससे मदद मिलती है।

9

क्या आप सुनिश्चित हैं कि बटन पर क्लिक नहीं किया गया है? मैंने अभी एक परीक्षण किया है, यह मेरे लिए ठीक काम करता है।

private void tbxMod_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     btnMod.PerformClick(); 
     e.SuppressKeyPress = true; 
    } 
} 
2

के तहत पर्चा के "गुण": और यहाँ जिस तरह से "डिंग" ध्वनि को रोकने के लिए है। श्रेणी (Misc) में निम्न विकल्प हैं:

स्वीकृति बटन, रद्द करें बटन, कीप्रेव्यू, & टूलटिप।

जब आप दबाते हैं तो उस बटन पर AcceptButton को सेट करना चाहते हैं जब आप कुंजी को चाल करना चाहिए।

0

नीचे दिया गया सरल कोड ठीक काम करता है (टेक्स्टबॉक्स में जबकि एंटर कुंजी मारना टेक्स्टबॉक्सैटपस नम्बर प्रदर्शित करता है "UpdatePlatypusGrid() दर्ज"); प्रपत्र के KeyPreview गलत पर सेट है:

private void textBoxPlatypusNumber_KeyDown(object sender, KeyEventArgs e) { 
    if (e.KeyCode == Keys.Enter) 
    { 
     UpdatePlatypusGrid(); 
    } 
} 

private void UpdatePlatypusGrid() 
{ 
    MessageBox.Show("UpdatePlatypusGrid() entered"); 
} 
1

मैं थॉमस के जवाब और मार्क के गठबंधन करने के लिए किया था। मैं तो मैं यह सब करना था फार्म पर एक AcceptButton सेट था:

private void tbxMod_Enter(object sender, EventArgs e) 
    { 
     AcceptButton = null; 
    } 

    private void tbxMod_Leave(object sender, EventArgs e) 
    { 
     AcceptButton = buttonOK; 
    } 

    private void tbxMod_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      // Click your button here or whatever 
      e.Handled = true; 
     } 
    } 

मैं t0mm13b के e.Handled इस्तेमाल किया, हालांकि थॉमस के e.SuppressKeyPress के रूप में अच्छी तरह से काम करने लगता है। मुझे यकीन नहीं है कि अंतर क्या हो सकता है।

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