2009-05-28 11 views
5

मैं ट्रे को छिपाने के लिए/आवेदन बहाल, साथ ही पॉप अप आवेदन घटनाओं के उपयोगकर्ता के लिए नोटिस में एक NotifyIcon उपयोग करने वाले ऐप्लिकेशन की है। मेरे एप्लिकेशन में एक अधिसूचना कतार है, और मैं नोटिफिकेशन आइकन का उपयोग करता हूं। बैलून टिपक्लोज्ड इवेंट यह निर्धारित करने के लिए कि गुब्बारे को रीसेट करना है और अगली अधिसूचना (यदि कतार में कोई है) दिखाएं।मैं कैसे बता सकता हूं कि सिस्टम ट्रे में एक गुब्बारा टिप बंद हो गई है या नहीं?

यह विधि दोनों सामान्य कारणों में बहुत अच्छा काम करती है (उपयोगकर्ता गुब्बारे को बंद होने पर खुद को बंद कर देता है, और उपयोगकर्ता इसे बंद करने के लिए मजबूर करने के लिए गुब्बारे में "एक्स" क्लिक करता है), लेकिन एक तीसरा मामला है जहां BalloonTipClosed नहीं है ' टी कहा जाता हो:

  1. अधिसूचना गुब्बारे
  2. पॉप अप होता है हालांकि यह दिखाई दे रहा है, सूचना आइकन पर उपयोगकर्ता को राइट-क्लिक के संदर्भ मेनू ऊपर लाने के लिए, गायब हो जाने की

BalloonTipClosed घटना नहीं करता है 'गुब्बारा के कारण इस में ट्रिगर नहीं किया उदाहरण - मुझे लगता है कि यह ढांचे में एक बग है (मैं 2.0 का उपयोग कर रहा हूं), लेकिन क्या किसी के पास इस बारे में कोई विचार है? अगर मुझे यह घटना नहीं मिलती है, तो मेरा आवेदन हमेशा सोचता है कि एक गुब्बारा दिखाई देता है (मेरे पास एक बुलियन है जो इसे एक साथ कई गुब्बारे प्रदर्शित करने से रोकता है), और जब तक यह चल रहा है, तब तक यह कभी भी एक और आइकन नहीं दिखाएगा।

उत्तर

0

यहाँ मैं क्या कर समाप्त हो गया है, हालांकि मैं नहीं विशेष रूप से इस समाधान की तरह। मैंने फॉर्म में दूसरा टाइमर जोड़ा और इसे 10 सेकंड के लिए सेट किया। जब कोई अधिसूचना पॉप अप होती है (जब मैं एक पॉप करता हूं), तो मैं टाइमर शुरू करता हूं, और उसके बाद गुब्बारे में बंद हो जाता है, मैं इसे रोकता हूं। यदि टाइमर टिकता है (जिसका अर्थ है कि BalloonTipClosed अभी तक नहीं चला है), तो मैं अगली टिप मैन्युअल रूप से प्रदर्शित करता हूं।

नतीजा यह है कि अगर यह अब तक सक्रिय नहीं किया गया है, मैं इसे की देखभाल है। हालांकि, अगर किसी के पास है तो मैं बेहतर समाधान के लिए खुला हूं।

0

BalloonTipClicked घटना के लिए ईवेंट हैंडलर में, मैं देखने के लिए अगर सही माउस बटन क्लिक किया गया था की जाँच करेगा, और अगर यह गलत पर बूलियन स्थापित किया गया था।

3

यह हारून के जवाब देने के लिए एक टिप्पणी के रूप अंतर्गत आता है, लेकिन मैं अभी तक टिप्पणी करने की अनुमति नहीं कर रहा हूँ।

यदि आप NotifyIcon (साथ ही BalloonTipClosed) पर BalloonTipClicked और MouseClick ईवेंट को संभालते हैं तो आप गुब्बारे बंद कर सकते हैं सभी तरीकों को कैप्चर कर सकते हैं। केवल एक चीज जो आपको अवगत कराती है वह यह है कि कई स्केनेरियो कई घटनाओं को ट्रिगर करेंगे, इसलिए सुनिश्चित करें कि उस पर कोड करना है (जैसे कुछ हैक्लोज्ड = सत्य, और तब एक नया गुब्बारा प्रदर्शित होने पर रीसेट करें)।

+0

इस के साथ समस्या यह है कि, जब तक मैं एक icon_click घटना पर कब्जा कर सकते हैं और मैं जानता हूँ कि गुब्बारा उस बिंदु पर बंद कर दिया है, मैं मुझे यकीन नहीं है कि अगला गुब्बारा कब प्रदर्शित करना है। इसे तुरंत प्रदर्शित करने से उपयोगकर्ता जो कुछ भी कर रहा है उस पर निर्भर करेगा। मैं इसे क्लिक के बाद देरी पर कर सकता था, और इसमें अभी भी एक टाइमर शामिल है, इसलिए मैं बस सभी मामलों में टाइमर का उपयोग करना चाहता हूं। – SqlRyan

+0

अच्छा बिंदु। यदि आप मेनू खोलने और बंद घटनाओं को प्रबंधित करते हैं और संदर्भ मेनू सक्रिय नहीं होने पर केवल अगले गुब्बारे को प्रदर्शित करते हैं, तो उपयोगकर्ता केवल 'डाउन डाउन' कर सकता है, एक संदर्भ मेनू सक्रिय कर सकता है। आप उस निर्णय को भी चुन सकते हैं कि उपयोगकर्ता किस मेनू आइटम को – Bob

0

मुझे लगता है कि रेमंड चेन से इस पोस्ट के गुब्बारे सूचनाओं के बारे में आपकी मदद कर सकता है: http://blogs.msdn.com/oldnewthing/archive/2009/05/04/9585032.aspx

+0

चुनता है, मुझे लगता है कि यह वास्तव में मेरे साथ क्या हो रहा है, लेकिन रेमंड इस बात से सहमत हैं कि बुलून बंद होने के बारे में बताने का कोई तरीका नहीं है। ऐसा लगता है कि अगर गुब्बारा किसी भी तरह से बंद हो जाता है तो गुब्बारा बंद कर दिया जाना चाहिए, लेकिन अगर आप नोटिफ़िकॉन पर क्लिक करके गुब्बारा बंद करते हैं तो यह आग नहीं लगती है, जैसा कि मुझे लगता है कि यह चाहिए। शायद मैं अपने ऐप के फ्रेमवर्क संस्करण को अपग्रेड करूँगा और देख सकता हूं कि यह व्यवहार बदलता है या नहीं। – SqlRyan

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

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