2012-06-11 19 views
5

मेरे पास एक ऐसा एप्लिकेशन है जो सिस्टम ट्रे से ही चलता है, इसका उद्देश्य केवल उपयोगकर्ता को बैलन टिप्स के माध्यम से जानकारी प्रदान करना है।अधिसूचना आइकन सिस्टम पर सिस्टम ट्रे में रहता है

यह एक मामूली परेशानी के अलावा, अच्छी तरह से चल रहा है। जब कार्य प्रबंधक (संदर्भ मेनू का उपयोग करने के विरोध में) का उपयोग कर एप्लिकेशन बंद हो जाता है, तो आइकन सिस्टम ट्रे में चारों ओर चिपक जाता है, जब तक कि आप इसे ऊपर नहीं ले जाते, फिर जब कोई अन्य उदाहरण खोला जाता है तो आपको पहले के बगल में बैठे दूसरे आइकन मिलते हैं।

मेरा फ़ॉर्म बंद घटना इस तरह दिखता है, यह कुछ भी करता है:

private void frmMain_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    ntfyIcon.Visible = false; 
    ntfyIcon.Icon = null; 
    ntfyIcon.Visible = false; 
    ntfyIcon.Dispose(); 
} 

यह has been reported on Microsoft Connect और Won't Fix के तहत माइक्रोसॉफ्ट द्वारा बंद कर दिया गया के रूप में, जाहिरा तौर पर, यह क्या हो जाता है है, लेकिन मुझे उम्मीद थी कि किसी को एक समाधान था।

मैं एप्लिकेशन पर सिस्टम ट्रे की सफाई के तरीके के साथ कुछ सोच रहा था?

धन्यवाद

+4

यह अपेक्षित व्यवहार है - यह * हर * प्रोग्राम को प्रभावित करता है जो सिस्टम ट्रे में आइकन डालता है, न केवल आपके। और अधिसूचना क्षेत्र से बातचीत करने के लिए कोई एपीआई नहीं है। –

+0

मुझे बहुत डर था, मेरे पास स्टैक ओवरफ्लो पर "जीनियस में से एक, प्रतिभा" में से एक था, यह पता लगाया जाएगा "क्षण – JMK

+0

एक ब्लॉग पोस्ट मिला जिसने मेरे प्रश्न का उत्तर दिया - http://tinyurl.com/ अधिसूचना – JMK

उत्तर

1

मेरे लिए, यह काम करता है जब सेटिंग्स के बाद Application.DoEvents() बुला Iconnull करने और NotifyIcon निपटाने।

private void frmMain_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    ntfyIcon.Icon = null; 
    ntfyIcon.Dispose(); 
    System.Windows.Forms.Application.DoEvents(); 
} 

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

  • कोई संबंधित समस्या नहीं^_^