2009-03-05 10 views
7

मैं अपने बच्चे (मोडल) रूपों में से एक में NotifyIcon नियंत्रण का उपयोग कर रहा हूं और यह ठीक काम कर रहा है। अपेक्षा की गई गुब्बारे युक्तियों को दिखाते हुए, माउस इवेंट्स इत्यादि को संभालना ... हालांकि जब मैं इसकी अपेक्षा करता हूं तो यह गायब नहीं होता है। विशेष रूप से, जब मैं बच्चे के फॉर्म से बाहर निकलता हूं और माता-पिता नियंत्रण में वापस आ जाता है तो आइकन अभी भी बना रहता है। यह टूलटिप सुलभ है इसलिए यह बहुत ज़िंदा "जीवित" है।नोटिफ़िकॉन की गारंटी कैसे दी जाती है?

जब मैं पूरी तरह से अपने आवेदन से बाहर निकलता हूं तब भी छवि तब तक बनी रहती है जब तक मैं उस पर कर्सर को घुमाता हूं। एक बार moused यह गायब हो जाता है।

मैं इसे सामान्य रूप से व्यवहार करने के लिए कैसे प्राप्त कर सकता हूं? ठीक है सामान्य रूप से एक बुरा शब्द है: -0 जब मैं इसे बनाते हुए फॉर्म गायब हो जाता हूं तो मैं इसे गायब करने के लिए कैसे प्राप्त कर सकता हूं?

क्या कोई यह बता सकता है कि इसका क्या कारण है, मैंने सोचा था कि नेट को खुद के बाद साफ करना था?

जी

संपादित करें: अगर मैं फोन के रूप में निपटान विधि बंद कर दिया इस काम करता है evernt, लेकिन मैं वास्तव में क्या यह करने के लिए? जी

उत्तर

5

यहां एक विचार है, यह सुनिश्चित नहीं है कि इससे कोई फर्क पड़ता है, लेकिन क्या आप बच्चे के फॉर्म बंद होने पर NotifyIcon पर निपटान() को कॉल कर रहे हैं?

संपादित करें: बस अपना संपादन देखा, हाँ मुझे आश्चर्य नहीं है कि इससे मदद मिलती है, और हाँ आपको यह करना चाहिए। कवर के तहत कुछ अप्रबंधित संसाधनों का उपयोग कर रहा है, और आपको इसे रिलीज़ करने की आवश्यकता है। आम तौर पर, आपके ऐप में जो कुछ भी आप उपयोग कर रहे हैं IDISposable लागू करता है, अपने आप को एक पक्ष करो और इसे निपटान करें।

+0

वाह, त्वरित उत्तर :-) बस मेरे संपादन में उल्लेख किया गया है। हां यह काम करता है लेकिन मुझे इन नियंत्रणों के साथ ऐसा कैसे करना है, लेकिन दूसरों को नहीं? –

+0

धन्यवाद, +1, स्वीकार किया गया, इसने मेरे लिए एक नया सवाल उठाया है, पूरी तरह से संबंधित नहीं है, इसलिए मैं इसे –

+0

पर पोस्ट कर दूंगा, लेकिन अगर नोटिफ़िकॉन बच्चे के रूप में है (यानी फॉर्म मालिक है), तो ' टी कॉलिंग फॉर्म पर निपटान भी NotifyIcon का निपटान? या आपने फॉर्म का निपटान नहीं किया? – OregonGhost

5
Icon.Visible = false 

भी काम करेगा। वैसे भी, Dispose को अभी भी विंडोज हैंडल का निपटान करने के लिए बुलाया जाना चाहिए।

1

This question समान है।

यदि आप किसी भी प्रकार के शट डाउन पर क्लीनअप की गारंटी देने की कोशिश करने के बजाय सिस्टम-ट्रे की सफाई के नए प्रोग्राम उदाहरणों के साथ ठीक हैं, तो following अधिसूचना ट्रे क्लीनअप को अनुकरण करता है। यह एक SendMessage समाधान का उपयोग करता है जो उपयोगकर्ता-माउस-ओवर क्लीनअप को अनुकरण करता है जिसमें वास्तव में उपयोगकर्ता के कर्सर को स्थानांतरित करने की आवश्यकता शामिल नहीं होती है।

ध्यान दें कि विंडोज 7 मशीनों पर नाम Notification AreaUser Promoted Notification Area के साथ प्रतिस्थापित किया जाना चाहिए।