आमतौर पर आप केवल इस लिए जब आप प्रदर्शित करने के लिए एक ट्रे आइकन या किसी अन्य विधि का उपयोग कर रहे कर रहे होते:
Me.Opacity = 0
Me.ShowInTaskbar = false
रूप दिखाने के लिए बाद में फॉर्म, लेकिन यह अच्छी तरह से काम करेगा भले ही आप अपना मुख्य रूप कभी प्रदर्शित न करें।
अपने फार्म कक्षा में एक bool कि गलत पर चूक है बनाएँ:
private bool allowshowdisplay = false;
फिर SetVisibleCore विधि
protected override void SetVisibleCore(bool value)
{
base.SetVisibleCore(allowshowdisplay ? value : allowshowdisplay);
}
Application.Run() रूपों सेट क्योंकि .Visible = के बाद सच को ओवरराइड यह फ़ॉर्म को लोड करता है जो इसे रोक देगा और इसे गलत पर सेट करेगा। उपर्युक्त मामले में, यह हमेशा इसे झूठी पर सेट करेगा जब तक कि आप इसे अनुमति देने के लिए अनुमति नहीं देते हैं।
अब यह प्रपत्र स्टार्टअप पर प्रदर्शित होने से रोक देगा, अब आपको SethisibleCore को allowhowdisplay = true सेट करके ठीक से काम करने की आवश्यकता है। आप इसे जो भी यूजर इंटरफेस फ़ंक्शन पर प्रदर्शित करना चाहते हैं, वह फॉर्म प्रदर्शित करता है। मेरे उदाहरण में यह मेरी notiyicon वस्तु में छोड़ दिया क्लिक करें घटना है:
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.allowshowdisplay = true;
this.Visible = !this.Visible;
}
}
स्रोत
2010-11-17 22:56:59
तक दूर दूर तक सबसे अच्छा (और सरल में से एक) समाधान मैंने देखा है। सभी शून्य करने के लिए अस्पष्टता की स्थापना, अलग टाइमर उदाहरणों होने प्रपत्र आदि को छिपाने के लिए के बारे में कचरा दिनों के लिए कोड गंध है। – nathanchere
इस विधि का उपयोग करना, यह अभी भी 'Process.MainWindowHandle' और तरह से मिल जाएगा? – Sebastian
डिजाइनर के पास एक दृश्यमान संपत्ति नहीं है जहां तक मैं देख सकता हूं। –