मुझे लगता है एक WinForm के मालिक .Owner संपत्ति के माध्यम से या अतिभारित विधि में मालिक पारित करके स्पष्ट रूप से सेट किया जा सकता है ShowDialog (IWin32Window मालिक)ओवनर संपत्ति और शोडियलॉग (IWin32Window मालिक) के बीच अंतर?
मुझे समझ में क्यों इन तरीकों अलग व्यवहार जब प्रदर्शन में असमर्थ हूँ एमडीआई फॉर्म के साथ काम कर रहा है।
मैंने एक MDIParent और MDIChild बनाया है।
मेरे पास एक साधारण Winform MyDialogBox भी है जो लोड पर अपने मालिक को प्रदर्शित करता है।
MessageBox.Show("Dialog's owner is " + this.Owner.Name);
विधि एक - का भार विधि में वैकल्पिक रूप से, - MDIChild का भार में मैं निम्नलिखित कोड है, जो MyDialogBox के मालिक का कारण बनता है करने के लिए सेट की है, हो MDIChild
MyDialogBox box = new MyDialogBox();
box.Owner = this; // Set owner as MDIChild
box.ShowDialog();
विधि बी MDIChild मैं निम्नलिखित कोड है, जो MyDialogBox के मालिक का कारण बनता है लिए सेट किया जा करने के लिए है MDIParent
MyDialogBox box = new MyDialogBox();
box.ShowDialog(this); // Pass MyMDIChild as owner
मैं भी निम्नलिखित here
पढ़ केवल एमडीआई माता पिता के फार्म एक और रूप के मालिक हैं, यह एक एमडीआई बच्चे, एक मॉडल संवाद या एक रूप जहां माता-पिता के मालिक परम के रूप में स्थापित किया गया था हो सकता है।
यदि ऐसा है तो विधि ए को बिल्कुल काम नहीं करना चाहिए, है ना?
मुझे क्या याद आ रही है? विधि बी ने स्वामी को MDIChild पर क्यों सेट नहीं किया है?
इसे वीबी 6 में करने का प्रयास करें और देखें कि यह आपके द्वारा प्रदान किए गए लिंक से मेल खाता है या नहीं। अगर ऐसा होता है, तो मुझे लगता है - ढांचे में एक बग है। – shahkalpesh
वीबी 6 के बारे में निश्चित नहीं है लेकिन वीबीएनईटी सी # – Preets