मैंने कुंजीपटल इनपुट पढ़ने के लिए कीप और कीडाउन घटनाओं का उपयोग करने का प्रयास किया है, लेकिन जैसे ही मैं Winform पर अन्य नियंत्रण डालता हूं, कुंजी को पढ़ा नहीं जाता है। मैं कैसे सुनिश्चित करूं कि चाबियाँ पढ़ी जाएंगी?मैं Winform पर कीबोर्ड इनपुट कैसे पढ़ूं?
उत्तर
आप कीबोर्ड कार्यक्रमों को पकड़ने के लिए अपने फॉर्म पर KeyPreview = true
सेट कर सकते हैं।
संपादित आप समझ जाने के लिए:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A)
e.SuppressKeyPress = true;
}
बेवकूफ नमूना है कि कुंजीपटल घटनाओं प्राप्त करता है और ड्रॉप करता है, तो एक दबाया गया था।
यदि फोकस टेक्स्टबॉक्स में है, तो आप देखेंगे कि टेक्स्ट लिखा गया है, लेकिन नहीं !!
फिर से संपादित: मैंने यह कोड VB.NET उदाहरण से लिया।
अपने उपयोगकर्ता नियंत्रण में, "उपयोगकर्ता नियंत्रण घटना" को बढ़ाने के लिए टेक्स्ट बॉक्स की "कुंजीपटल" घटना का उपयोग करें।
इस कोड को अपने कस्टम usercontrol में होगा:
'Declare the event
Event KeyPress(KeyAscii As Integer)
Private Sub Text1_KeyPress(KeyAscii As Integer)
RaiseEvent KeyPress(KeyAscii)
End Sub
यह काम नहीं किया, मैं अभी भी कोई इनपुट पंजीकृत नहीं कर रहा हूं। – Bildsoe
@ बिल्डसो: मैंने कोशिश की और यह काम करता है। आपको फॉर्म पर 'कीडाउन' और' कीप 'घटनाएं पकड़नी चाहिए: आप उन्हें प्राप्त करेंगे, सुनिश्चित करें। अगर आपका कोड पोस्ट न करें, क्योंकि कुछ गलत होना चाहिए ... – Marco
ठीक है धन्यवाद, मैं कोशिश करूंगा, मैंने कुछ गलत किया होगा। मेरे पास मेरे फॉर्म पर उपयोगकर्ता नियंत्रण है, क्या यह कुछ भी बदलता है? – Bildsoe
देखें: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.keypreview.aspx
सेट KeyPreview = true
और अपने KeyUp
और KeyDown
सभी कुंजीपटल इनपुट पहचान लेंगे।
जैसा कि मार्को कहता है कि केवल एक नियंत्रण के बजाय पूरे रूप में महत्वपूर्ण घटनाओं को पकड़ने के लिए अपने फॉर्म पर सत्यप्रूव्यू सेट करना है।
कुंजीपटल ईवेंट का उपयोग करें ... कुंजीपटल/डाउन आपके कोड की तुलना में ढांचे के लिए अधिक हैं। KeyDown अच्छा है यदि आप एक कुंजी को अक्षम करना चाहते हैं ... संख्यात्मक केवल फ़ील्ड इत्यादि। सामान्य कीप्रेस में वह है जिसे आप बाद में कर रहे हैं।
यदि आप कीस्ट्रोक को अन्य नियंत्रणों को सेट करने से रोकना चाहते हैं तो KeyPressEventArgs.Handled = true।
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress(v=VS.90).aspx
आप ईवेंट हैंडलर ऊपर वायर्ड है?
MyForm.KeyDown += MyHandler;
तुम भी गुण में ऐसा कर सकते हैं फलक ... क्लिक करें घटना आइकन ...
मुझे दोनों ऊपर और नीचे की जरूरत है। मैं दबाए जा रहे चाबियों को देखना चाहता हूं, इसलिए कुंजीअप और कीडाउन दोनों पर कुछ होने की आवश्यकता है। – Bildsoe
आह मैं देखता हूं ... KeyUp/Down को वही काम करना चाहिए। क्या आपने ईवेंट हैंडलर को तार दिया है? घटना अनुभाग में या कोड में गुण फलक में या तो? MyForm.KeyDown + = MyEventHandler; – iDevForFun
हां मैंने इवेंट हैंडलर को तार दिया था। यह काम करता है, लेकिन अगर मैं फॉर्म पर उपयोगकर्ता नियंत्रण नहीं डालता तो यह काम करना बंद कर देता है। – Bildsoe
आप देख रहे हैं अपने फार्म ही कीबोर्ड इनपुट को पढ़ने के लिए, आप पहले से ही अपना उत्तर है अन्य संवाददाता। मैं इस योगदान को इस संभावना के लिए जोड़ रहा हूं कि आप अपने फॉर्म पर अन्य नियंत्रण या उपयोगकर्ता नियंत्रण में कुंजी हैंडलिंग जोड़ना चाहेंगे। मेरा लेख Exploring Secrets of .NET Keystroke Handling DevX.com पर प्रकाशित हुआ है (हां, इसे पंजीकरण की आवश्यकता है लेकिन यह मुफ़्त है) आपको इस बारे में एक व्यापक चर्चा देता है कि कैसे और क्यों सभी विभिन्न हैंडलिंग हुक और घटनाएं खेलती हैं। इसके अलावा, आलेख में मुफ्त डाउनलोड के लिए "कीस्ट्रोक सैंडबॉक्स" उपयोगिता शामिल है जो वास्तव में आपको यह देखने देती है कि किन नियंत्रणों को कौन सा नियंत्रण प्राप्त हो रहा है।
- 1. मैं जावा में स्वरूपित इनपुट कैसे पढ़ूं?
- 2. मैं WPF में उपयोगकर्ता से कस्टम कीबोर्ड शॉर्टकट कैसे पढ़ूं?
- 3. मैं जावा में इनपुट कैरेक्टर-बाय-कैरेक्टर कैसे पढ़ूं?
- 4. मैं डार्ट में कंसोल इनपुट/stdin कैसे पढ़ूं?
- 5. उबंटू के तहत नासम (असेंबली) का उपयोग करके कीबोर्ड से एकल वर्ण इनपुट कैसे पढ़ूं?
- 6. शीतल इनपुट कीबोर्ड एंड्रॉयड
- 7. इनपुट (माउस + कीबोर्ड)
- 8. एंड्रॉइड टाइमपिकर पर कीबोर्ड इनपुट अक्षम करें
- 9. मैं रनटाइम पर कक्षा पर एक विशेषता कैसे पढ़ूं?
- 10. मैं जावा दस्तावेज कैसे पढ़ूं?
- 11. जावा स्ट्रीम कीबोर्ड इनपुट
- 12. /dev/इनपुट कीबोर्ड प्रारूप
- 13. कीबोर्ड इनपुट आईओएस
- 14. प्रभावी कीबोर्ड इनपुट हैंडलिंग
- 15. जावास्क्रिप्ट में कीबोर्ड इनपुट कैसे लें?
- 16. प्रयुक्त इनपुट के बाद कीबोर्ड कैसे दिखाएं
- 17. WinForm पर नियंत्रण डिज़ाइनर
- 18. मैं विंडोज पर एक गैर-अवरुद्ध आईपीसी कैसे पढ़ूं?
- 19. जावा: हैंडलिंग संयुक्त कीबोर्ड इनपुट
- 20. मैं कैसे कीबोर्ड
- 21. मैं RestTemplate से प्रतिक्रिया शीर्षलेख कैसे पढ़ूं?
- 22. मैं सी ++ में सिस्टम जानकारी कैसे पढ़ूं?
- 23. मैं ऑडियोबफर सूची से नमूने कैसे पढ़ूं?
- 24. मैं एक एक्सकोड क्रैश रिपोर्ट कैसे पढ़ूं?
- 25. मैं सी ++ पॉइंटर निर्माण कैसे पढ़ूं?
- 26. मैं स्ट्रिंग की पहली पंक्ति कैसे पढ़ूं?
- 27. संख्यात्मक इनपुट को मजबूर किए बिना मैं संपादन टेक्स्ट पर न्यूमेरिक कीबोर्ड कैसे डिफ़ॉल्ट करूं?
- 28. आईफोन पर पहला जवाब देने के बिना इनपुट कीबोर्ड छुपाएं?
- 29. ब्लूटूथ कीबोर्ड कनेक्ट होने पर स्क्रीन कीबोर्ड पर बल
- 30. Winform
आप इसे खाली फार्म के लिए काम करता है और काम नहीं कर रहा है, तो वहाँ एक नियंत्रण है आपका मतलब है:
यहाँ लेख से एक उदाहरण अपनी भूख के लिए है? – Yuan
हां, जैसा कि नीचे दिए गए उत्तरों में लिखा गया है, यह बटन, टेक्स्टबॉक्स इत्यादि जैसे नियंत्रणों के लिए काम करता है लेकिन जब मैं उपयोगकर्ता नियंत्रण डालता हूं तो यह काम करना बंद कर देता है। – Bildsoe
यह काम नहीं करना चाहिए, कीबोर्ड इनपुट फोकस के साथ नियंत्रण में जाता है। आप वास्तव में क्या करने की कोशिश कर रहे हैं? –