2010-07-20 17 views
8

छिपा स्टार्टअप प्रपत्र शुरू में अदृश्य या छिपाकैसे शुरू में अदृश्य या

2 फार्म के साथ एक जीयूआई परियोजना है और रूपों को अलग से प्रदर्शित करने के लिए है बनाने के लिए स्टार्टअप प्रपत्र बनाने के लिए। यानी जब फॉर्म 1 दिखाया गया है, तो अन्य सभी रूप छुपाए जाने चाहिए।

मैं अन्य सभी रूपों को छुपा सकता हूं, लेकिन मैं स्टार्टअप फॉर्म को छुपा नहीं सकता हूं। इसलिए सिस्टम ट्रे में मेरा एप्लिकेशन का आइकन।

उदाहरण के लिए, फ़ायरवॉल/एंटीवायरस और त्वरित संदेश अनुप्रयोग पृष्ठभूमि में चलाने के लिए ऐसा करते हैं और अभी भी सिस्टम ट्रे से उपयोगकर्ता के लिए सुलभ हो सकते हैं।

उत्तर

5

मुझे लगता है कि आप जो पूछ रहे हैं वह यह है कि फॉर्म बार में फॉर्म कैसे नहीं दिखता है और केवल आईएम या एंटी वायरस की तरह ही सिस्टम ट्रे में दिखाई देता है?

यदि ऐसा है, तो ShowInTaskbarForm से false पर संपत्ति सेट करें।

प्रारंभिक रूप अदृश्य बनाने के लिए, आपको ApplicationContext का उपयोग मुख्य प्रारूप के बजाय Application.Run के भीतर करना होगा।

+0

को WindowState सेट करें देना कुछ लेख लिंक – amexn

+0

मैं तुम्हें एक लिंक दे दिया है - 'ApplicationContext' पर क्लिक करें। – GenericTypeTea

1

माइक्रोसॉफ्ट ने इसके बारे में एक वेबपेज लिखा था। यह ApplicationContext का उपयोग करने का एक उदाहरण देता है। मूल रूप से फॉर्म प्रपत्र होने की बजाय, आपके पास एक ऐप है जो Main() और Main चलाता है और फिर फॉर्म खोलता है।

http://msdn.microsoft.com/en-us/library/Aa984417

आप कार्यक्षमता कि जिस तरह से की खो खो, तथापि, क्योंकि आप "अनुप्रयोग फ्रेमवर्क" निष्क्रिय करने के लिए है। यह आपके विंडोज बदसूरत बना देगा।

यहां एक अलग समाधान है, लगभग एक हैक लेकिन बहुत बुरा नहीं है। जब विंडोज़ आपके फॉर्म ऐप को शुरू करता है और Visible को सत्य पर सेट करता है, तो यह SetVisibleCore पर कॉल का कारण बनता है। आप उस समारोह को ओवरराइड कर सकते हैं। पहली बार SetVisibleCore कहा जाता है, इसे गलत सेट करें। तब से, बस से गुज़रें।

ध्यान रखें कि Form.Load तब नहीं ट्रिगर होगा जब आपका ऐप शुरू नहीं होता है, तो फॉर्म दिखाई नहीं दे रहा है, इसलिए सभी कोड Sub New() में स्थानांतरित करें।

यहाँ पूरी बात है: गलत पर

Public Sub New() 

    ' This call is required by the designer. 
    InitializeComponent() 

    ' Add any initialization after the InitializeComponent() call. 
    config.LoadFromRegistry() 'this gets config.StartMinimized from the registry 
    ' Code that needs to run at start, even if the form isn't showing, 
    ' should be here. Form.Load will only happen when the Form is actually 
    ' visible for the first time. 
End Sub 

Dim FirstSetVisible As Boolean = True 

Protected Overrides Sub SetVisibleCore(ByVal value As Boolean) 
    If config.StartMinimized And FirstSetVisible Then 
     MyBase.SetVisibleCore(False) 'ignore Windows attempt to set Visible 
     FirstSetVisible = False 'never do this again 
    Else 
     MyBase.SetVisibleCore(value) 
    End If 
End Sub 
2

सेट ShowInTaskbar संपत्ति और कम से कम

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