समस्या: मेरे पास एक दस्तावेज़ श्रेणी है जिसमें ऑब्जेक्ट्स की एक सूची है। ये ऑब्जेक्ट SolutionExpired
, DisplayExpired
इत्यादि जैसी घटनाओं को बढ़ाते हैं। दस्तावेज़ को इसका जवाब देने की आवश्यकता है।एक ईवेंट में सभी ईवेंट हैंडलर को हटाकर
दस्तावेज़ कभी-कभी ऑब्जेक्ट्स का आदान-प्रदान कर सकते हैं, लेकिन एक ऑब्जेक्ट कभी भी एक से अधिक दस्तावेज़ों का 'भाग' नहीं होना चाहिए।
मेरी दस्तावेज़ श्रेणी में विधियों का एक समूह है जो ईवेंट हैंडलर के रूप में कार्य करता है। जब भी कोई ऑब्जेक्ट दस्तावेज़ में प्रवेश करता है, तो मैं ईवेंट सेट अप करने के लिए AddHandler
का उपयोग करता हूं, और जब भी दस्तावेज़ से ऑब्जेक्ट हटा दिया जाता है तो मैं क्षति को पूर्ववत करने के लिए RemoveHandler
का उपयोग करता हूं। हालांकि, ऐसे मामले हैं जहां यह सुनिश्चित करना मुश्किल है कि सभी कदम ठीक से उठाए गए हैं और मैं इस प्रकार दुष्ट घटना हैंडलर के साथ समाप्त हो सकता हूं।
लंबी कहानी छोटी; मैं उन सभी हैंडलर को कैसे हटा सकता हूं जो एक विशिष्ट विधि को इंगित कर रहे हैं? ध्यान दें, मेरे पास संभावित घटना स्रोतों की एक सूची नहीं है, इन्हें कहीं भी संग्रहीत किया जा सकता है।
कुछ की तरह:
RemoveHandler *.SolutionExpired, AddressOf DefObj_SolutionExpired
संभावित डुप्लिकेट [सभी ईवेंट हैंडलर को नियंत्रण से कैसे हटाएं] (http://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control) – ChrisF
संभव डुप्लिकेट [सभी ईवेंट हैंडलर को नियंत्रण से कैसे हटाएं] (https://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control) –