2013-04-22 5 views
6

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

this.WindowState = FormWindowState.Normal; 

यह संभव है, कैसे की जरूरत है?

इसके अलावा सिस्टम ट्रे से

मैं निचले दाएं कोने में एक, अगली बार के लिए

मैं अभी भी इस काम करने के लिए नहीं मिल सकता है, कुछ भी नहीं सूचना पट्टी में प्रकट होता है, तो मैं क्या तुम लोगों ने कहा कि ऐसा (मतलब बीटीडब्ल्यू: यह कम करने के लिए पूर्ण कोड है)

private void button6_Click(object sender, EventArgs e) 
{ 
    this.WindowState = FormWindowState.Minimized; 


} 

private void Form_Resize(object sender, EventArgs e) 
{ 
    if (WindowState == FormWindowState.Minimized) 
    { 
     this.Hide(); 
    } 


} 

private void notifyIcon_Click(object sender, EventArgs e) 
{ 
    this.Show(); 
    this.WindowState = FormWindowState.Normal; 
} 

यह क्यों काम नहीं कर रहा है? कोड निम्नलिखित

+1

एक "सिस्टम ट्रे" जैसी कोई चीज नहीं है। इसे "अधिसूचना क्षेत्र" कहा जाता है। इससे आपको 'NotifyIcon'' को लागू करने के लिए सही घटक खोजने में मदद मिलनी चाहिए। –

उत्तर

7

फॉर्म का आकार बदलें ईवेंट को संभालें। इस हैंडलर में, आप आकार बदलने की मूल कार्यक्षमता को ओवरराइड करने के लिए फॉर्म को सिस्टम ट्रे को कम करें और टास्कबार पर नहीं। यह कर अपने फार्म का आकार ईवेंट हैंडलर में का पालन करते हुए किया जा सकता है: प्रपत्र के WindowState संपत्ति FormWindowState.Minimized पर सेट है

  1. चेक या नहीं। यदि हां, तो अपना फॉर्म छुपाएं, NotifyIcon ऑब्जेक्ट को सक्षम करें, और बुलून टिप दिखाएं जो कुछ जानकारी दिखाती है।
  2. एक बार विंडोस्टेट FormWindowState.Normal बन जाता है, तो इसकी दृश्यमान संपत्ति को गलत पर सेट करके NotifyIcon ऑब्जेक्ट को अक्षम करें।
  3. अब, जब आप टास्कबार में NotifyIcon ऑब्जेक्ट पर डबल क्लिक करते हैं, तो आप विंडो को फिर से दिखाना चाहते हैं। इसके लिए, NotifyIcon के MouseDoubleClick ईवेंट को संभाल लें। यहां, आप Show() विधि का उपयोग कर फ़ॉर्म दिखाते हैं।

रूप आकार घटना में, वहाँ की जांच करते हैं और प्रपत्र

private void Form_Resize(object sender, EventArgs e) 
    { 
     if (WindowState == FormWindowState.Minimized) 
     { 
      this.Hide(); 
     } 
    } 

छिपाने फिर जब टास्कबार आइकन पर क्लिक बस इसे बहाल।

private void notifyIcon_Click(object sender, EventArgs e) 
{ 
    this.Show(); 
    this.WindowState = FormWindowState.Normal; 
} 

देखें:
How do I minimize a WinForms application to the notification area?
minimize app to system tray

+0

एसओ में डुप्लिकेट उत्तरों को भी चिह्नित करने का विकल्प होना चाहिए! http://stackoverflow.com/a/6317078/762730 – Sandeep

+0

@ संदीप: वह पॉपअप को भी वही प्रश्न नहीं छिपाना चाहता है अन्यथा मैं हमेशा लिखने के बजाय इस काम को करने में हमेशा खुश हूं .. आपके सुझाव के लिए धन्यवाद। –

+0

ठीक है मुझे कुछ याद आना चाहिए, मुझे नहीं पता कि यह क्या है, इसलिए यदि आप इसे मेरे लिए पूरी तरह से वर्तनी कर सकते हैं, क्योंकि मैं बेवकूफ़ हूं, मैं जो पूरा कोड डालता हूं, मैं भी ऐप को प्राप्त करना चाहता हूं नोटिकेशंस बार पहले और मैं नहीं चाहता कि यह पॉपअप हो, या पॉपअप – Connor

5

उपयोग:

if (WindowState == FormWindowState.Minimized) 
     { 
      this.Hide(); 
     } 

जब आप प्रपत्र को कम से कम, बस इसे छिपाने। आपको Form_Resize ईवेंट में उपरोक्त कोड को लागू करना होगा।

तो बस इस प्रकार अपने राज्य को बहाल टास्कबार आइकन पर क्लिक पर:

private void notifyIcon_Click(object sender, EventArgs e) 
    { 
     this.Show(); 
     this.WindowState = FormWindowState.Normal; 
    } 

आप इस उद्देश्य के लिए notifyIcon_Click घटना का उपयोग करने की आवश्यकता होगी।

इसकी मदद करें।

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