के रूप में ShowDialog नए रूप से पता चलता है, एक अंतर्निहित संबंध वर्तमान में सक्रिय रूप है, मालिक फार्म के रूप में जाना जाता है, और नया रूप, के स्वामित्व वाले प्रपत्र के रूप में जाना के बीच स्थापित है। यह संबंध सुनिश्चित करता है कि स्वामित्व वाला फॉर्म सक्रिय रूप है और हमेशा मालिक फ़ॉर्म के शीर्ष पर दिखाया गया है। इस रिश्ते के
एक विशेषता यह है कि स्वामित्व प्रपत्र (जब ShowDialog का प्रयोग करके) अपने मालिक फार्म के व्यवहार को प्रभावित करता है:
- मालिक रूप है, कम से कम नहीं किया जा सकता को बड़ा किया, या यहाँ तक ले जाया गया।
- स्वामित्व वाला फॉर्म स्वामी के रूप में माउस और कीबोर्ड इनपुट ब्लॉक करता है।
- स्वामित्व वाला फॉर्म होने पर मालिक का फॉर्म कम हो जाता है।
- केवल स्वामित्व वाला फॉर्म बंद किया जा सकता है।
- यदि दोनों मालिक और स्वामित्व वाले फॉर्म कम किए गए हैं और यदि उपयोगकर्ता स्वामित्व वाले फॉर्म पर स्विच करने के लिए Alt + Tab दबाता है, तो स्वामित्व वाला फॉर्म सक्रिय होता है।
ShowDialog विधि विपरीत, तथापि, के लिए एक कॉल विधि करता है एक अंतर्निहित मालिक के स्वामित्व वाली संबंध स्थापित नहीं कर दिखाएं। इसका मतलब है कि या तो फॉर्म वर्तमान में सक्रिय रूप हो सकता है।
एक अंतर्निहित मालिक के स्वामित्व वाले रिश्ते के बिना, मालिक और स्वामित्व वाले फॉर्म समान रूप से कम से कम, अधिकतम या स्थानांतरित किया जा सकता है। यदि उपयोगकर्ता मुख्य रूप के अलावा किसी भी फ़ॉर्म को बंद करता है, तो हाल ही में सक्रिय रूप सक्रिय है।
हालांकि ShowDialog एक अंतर्निहित मालिक के स्वामित्व वाली संबंध स्थापित करता है, स्वामित्व प्रपत्र वापस या क्वेरी के फार्म का है कि इसे खोला कॉल करने के लिए के लिए कोई अंतर्निहित तरिका नहीं है। मॉडल केस में, आप मालिक के स्वामित्व वाले रिश्ते को स्थापित करने के लिए नया फ़ॉर्म की स्वामी संपत्ति सेट कर सकते हैं। शॉर्टकट के रूप में, आप शो विधि के ओवरलोड पर एक तर्क के रूप में मालिक फ़ॉर्म को पास कर सकते हैं, जो IWin32Window पैरामीटर भी लेता है (IWin32Window विंडोज फॉर्म यूआई ऑब्जेक्ट्स द्वारा कार्यान्वित किया गया है जो IWin32Window के माध्यम से Win32 HWND प्रॉपर्टी का खुलासा करता है। संपत्ति संभाल लें)।
एक स्पष्ट मोडल मालिक के स्वामित्व वाली प्रपत्र रिश्ते में रूपों का व्यवहार अपने निहित मोडल समकक्ष के रूप में ही है, लेकिन मोडहीन मालिक के स्वामित्व वाली संबंध गैर-स्वामी के स्वामित्व वाली मोडहीन की स्थिति में अतिरिक्त व्यवहार प्रदान करता है। सबसे पहले, मॉडल के स्वामित्व वाले फॉर्म हमेशा मालिक के रूप में दिखाई देते हैं, भले ही सक्रिय हो। यह तब उपयोगी होता है जब आपको किसी फॉर्म को रखने की आवश्यकता होती है, जैसे एक फ़्लोटिंग टूल विंडो, किसी एप्लिकेशन के अन्य रूपों के शीर्ष पर। दूसरा, यदि उपयोगकर्ता मालिक से स्विच करने के लिए Alt + Tab दबाता है, तो स्वामित्व वाले फॉर्म सूट का पालन करते हैं। यह सुनिश्चित करने के लिए कि उपयोगकर्ता जानता है कि कौन सा फॉर्म मुख्य रूप है, स्वामी को कम करने के लिए सभी स्वामित्व वाले फॉर्मों के लिए टास्क बार बटन छुपाता है, केवल स्वामी के कार्य बार बटन को छोड़कर दिखाई देता है।
यह Winforms में लागू नहीं होता है, लेकिन रिकॉर्ड के लिए, मैं यहां आया क्योंकि मुझे WPF में समस्याएं थीं। अगर मैं किसी अन्य एप्लिकेशन पर स्विच करता हूं, जब मैंने पैरेंट फॉर्म पर दोबारा क्लिक किया, तो बच्चा संवाद पीछे फंस गया (बमर को बाल संवाद में टास्कबार में दिखाने के लिए सेट नहीं किया गया था)। संवाद के मालिक को सेट करने से इस समस्या को ठीक किया गया। – Benjol
पृष्ठभूमि कार्यकर्ता प्रारंभ करें और ShowDialog पर कॉल करें।खिड़की आपके आवेदन के सामने दिखाई नहीं देगी लेकिन पृष्ठभूमि पर (केवल हमें प्रोग्रामर परेशान करने के लिए यह केवल हर समय होता है)। – CodingBarfield
Barfieldmv, मैंने आपके द्वारा सुझाए गए कार्यों को करने की कोशिश की और यह फ़ॉर्म पृष्ठभूमि पर नहीं, शीर्ष पर दिखाई देता है। – nightcoder