2009-04-11 12 views
7

जब उपयोगकर्ता विंडो के कुछ हिस्सों पर क्लिक करता है, तो मैं विंडो के नियंत्रण में UserControl जोड़ता हूं। UserControl का एक करीबी बटन है। UserControl को नष्ट करने के लिए UserControl के बटन हैंडलर में मैं क्या कर सकता हूं? Win32 DestroyWindow कॉल के लिए कोई .NET एनालॉग नहीं लगता है, और नियंत्रण के लिए कोई बंद() विधि नहीं है। अब तक मेरे पास यह है:उपयोगकर्ता नियंत्रण कैसे नष्ट कर सकता है?

private void sbClose_Click(object sender, EventArgs e) 
{ 
    Parent.Controls.Remove(this); 
    this.Dispose(); 
} 

और यदि माता-पिता को नियंत्रण को नष्ट करने की आवश्यकता है, तो क्या कदम हैं? - वहाँ कुछ भी नहीं आप बल उपयोगकर्ता नियंत्रण नष्ट हो करने के लिए क्या कर सकते हैं

Controls.Remove(control); 
    control.Dispose(); 

उत्तर

6

आप कचरा संग्रहण के साथ एक प्रबंधित कोड के माहौल में काम कर रहे हैं: यह क्या मैं अब तक है।

आपको बस इतना करना है, आप सभी कर सकते हैं इसे माता-पिता से हटाएं और सुनिश्चित करें कि कोई शेष संदर्भ नहीं हैं।

यह आमतौर पर पर्याप्त होगा:

private void sbClose_Click(object sender, EventArgs e) 
{ 
    Parent.Controls.Remove(this); 
} 

केवल समय की आवश्यकता होगी और अधिक अगर तुम घटनाओं के साथ एक साथ बातें टाई, जैसा कि आप उन लोगों के रूप में अच्छी तरह से अपंजीकृत कर करने की आवश्यकता होगी है।

+0

न केवल नियंत्रण/प्रबंधित संबंधित। ऑब्जेक्ट्स खुद को नष्ट कर रहे हैं? मज़ा! –

0

एक नियंत्रण स्वयं को नष्ट नहीं कर सकता है। माता-पिता होने के मामले में, आप सही रास्ते पर हैं। आप माता-पिता या अन्य नियंत्रण कॉल कर सकते हैं इस पर निपटान करें और इस नियंत्रण के सभी संदर्भों को हटा दें। इस तरह नियंत्रण को नियंत्रित करने से जीसी चीजों को साफ करने की अनुमति देगा।

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