के रूप में एक ईवेंट पास करना मुझे किसी फ़ंक्शन के पैरामीटर के रूप में एक ईवेंट पास करने की आवश्यकता है। क्या इसे करने का कोई तरीका है?वीबीएनईटी - एक पैरामीटर
कारण यह है कि मेरे पास कोड की दो पंक्तियों का अनुक्रम है जो मेरे पूरे कार्यक्रम में घिरा हुआ है, जहां मैं गतिशील रूप से एक ईवेंट में हैंडलर को हटा देता हूं, और फिर हैंडलर को फिर से सेट करता हूं। मैं इसे कई अलग-अलग आयोजनों और ईवेंट हैंडलर के लिए कर रहा हूं, इसलिए मैंने ऐसा फ़ंक्शन लिखने का निर्णय लिया है जो ऐसा करता है।
उदाहरण के लिए, मान लीजिए कि मैं ComboBox1 बुलाया मेरी कोड में एक combobox है, और मुझे हैंडलर indexChangedHandler बुलाया डालते हैं। मेरी कोड के कई स्थानों में, मैं दो पंक्तियों निम्नलिखित है:
RemoveHandler combobox1.SelectedIndexChanged, AddressOf indexChangedHandler
AddHandler combobox1.SelectedIndexChanged, AddressOf indexChangedHandler
अब, मैं कोड (या समान) मेरे सभी कार्यक्रम से अधिक की ऊपर दो पंक्तियों दोहराते रखने के लिए नहीं करना चाहते हैं, तो मैं ' मीटर यह करने के लिए एक रास्ता तलाश:
setHandler(combobox1.SelectedIndexChanged, AddressOf indexChangedHandler)
अब तक:
Private Sub setHandler(evt As Event, hndler As eventhandler)
RemoveHandler evt, hndler
AddHandler evt, hndler
End Sub
ताकि हर जगह जहां कोड (या समान) के उन दो पंक्तियों मेरा कार्यक्रम में पाए जाते हैं, मैं सिर्फ उन लोगों के साथ की जगह ले सकता ए के "घटना के रूप में evt" भाग सेट हैंडलर फ़ंक्शन का rgument एक त्रुटि दे रहा है।
पी.एस: मैं अन्य मंचों के एक जोड़े पर इस प्रश्न पूछा और कहा जा रहा रखने के कारण है कि मैं इसे हटाने के तुरंत बाद हैंडलर सेट करना चाहते हैं है। इसका कारण यह है कि ईवेंट ईवेंट होने पर गतिशील रूप से एक ईवेंट हैंडलर एन-टाइम्स को हैंडलर को एन-बार निष्पादित करने का कारण बनता है। इससे बचने के लिए, यह सुनिश्चित करने के लिए कि ईवेंट होने पर हैंडलर को केवल एक बार निष्पादित किया जाता है, मैं हर बार हैंडलर को गतिशील रूप से जोड़ना चाहता हूं।
आप पूछ सकते हैं कि हैंडलर को पहली बार क्यों कई बार जोड़ा जाएगा ... कारण यह है कि मैं केवल एक विशेष घटना के बाद हैंडलर जोड़ता हूं, ई 1 कहता हूं, मेरे फॉर्म में हुआ है (मैं हैंडलर जोड़ता हूं घटना ई 1 के हैंडलर के भीतर)। और घटना ई 1 मेरे रूप में कई बार हो सकती है। यदि मैं इसे फिर से जोड़ने से पहले हर बार हैंडलर को नहीं हटाता, तो हैंडलर जोड़ा जाता है और इस प्रकार कई बार निष्पादित किया जाता है।
जो भी मामला, प्रसंस्करण समारोह के भीतर होने नहीं मेरे लिए परम महत्व के इस समय है, बल्कि सिर्फ एक पैरामीटर के रूप में एक घटना में उत्तीर्ण होने की व्यवस्था होनी चाहिए।
क्या आप हमें बता सकते हैं कि त्रुटि क्या है? –
इस प्रोग्राम को करने का कोई वास्तविक तरीका नहीं है, क्योंकि आप किसी ईवेंट सदस्य के संदर्भ पास नहीं कर सकते हैं। मुझे यह भी बिल्कुल यकीन नहीं है कि सेटहैंडलर क्या करना चाहता है ... क्या आप स्पष्टीकरण दे सकते हैं कि आपको इवेंट हैंडलर को हटाने की आवश्यकता क्यों होगी और फिर इसे फिर से जोड़ें? – cdhowie
@cdhowie मैं अपनी पोस्ट को संपादित करने की प्रक्रिया में था, यह समझाने के लिए कि मुझे ऐसा करने की आवश्यकता क्यों है, बाधित हो गया है, वापस आ गया है और संपादन पूरा कर लिया है और सबमिट कर लिया है, इससे पहले कि आप पहले से ही सवाल पूछ चुके हैं। लंबी कहानी छोटी, कारण अब मूल पोस्ट में शामिल है :) – Tracer