लघु संस्करण: मैं फ़ॉर्म को दिखने के बिना Form_Load() ईवेंट ट्रिगर करना चाहता हूं। यह काम नहीं करता क्योंकि शो() दर्शनीय संपत्ति के वर्तमान मूल्य पर ध्यान नहीं देता:इसे दिखाए बिना एक फॉर्म लोड करें
tasksForm.Visible = false;
tasksForm.Show();
लांग संस्करण: मुख्य और कार्यों: मैं दो रूपों के साथ एक WinForms आवेदन किया है। मुख्य रूप हमेशा प्रदर्शित होता है। उपयोगकर्ता या तो कार्य प्रपत्र खोलने के लिए एक बटन क्लिक कर सकते हैं, या कुछ बटन क्लिक कर सकते हैं जो कार्य फ़ॉर्म खोलने के बिना सीधे कार्य चलाते हैं।
जब कोई उपयोगकर्ता सीधे कार्य चलाने के लिए कहता है, तो मैं इसे बिना किसी दिखाए कार्य कार्यों पर कुछ सार्वजनिक तरीकों को कॉल करना चाहता हूं। दुर्भाग्यवश, कार्य तर्क Form_Load() ईवेंट में होने वाली सामग्री पर निर्भर करता है। Form_Load() को ट्रिगर करने के लिए मुझे ढूंढने का एकमात्र तरीका शो() को कॉल करना है। सबसे अच्छा मैं ऐसा करने में सक्षम किया गया है कम से कम राज्य में रूप को दिखाने के लिए है:
tasksForm.WindowState = FormWindowState.Minimized;
tasksForm.Show();
मुझे लगता है साफ समाधान कार्य रूप से बाहर है और एक नियंत्रक वर्ग में कार्य तर्क को खींचने के लिए किया जाएगा। फिर मैं उस वर्ग को मुख्य रूप से और कार्य प्रपत्र से उपयोग कर सकता हूं, और केवल उपयोगकर्ता के लिए दृश्यमान होने पर कार्य फ़ॉर्म लोड कर सकता हूं। हालांकि, अगर इसे प्रदर्शित किए बिना फॉर्म लोड करना एक आसान बात है, तो यह एक छोटा बदलाव होगा।
मैं आपको सबसे स्वच्छ समाधान के साथ जाने के लिए प्रोत्साहित करता हूं। बाद में इसे बनाए रखना आपके लिए आसान होगा। –
जैसा कि मैंने अपने उत्तर में कहा है और मैं स्कॉट के साथ सहमत हूं, आपको इसे फिर से करने और नियंत्रक वर्ग मार्ग पर जाने की आवश्यकता है। यह अच्छा अभ्यास है। –