/ / C # पैरेंट फॉर्म ओपन चाइल्ड फॉर्म, पैरेंट क्लोज होने के बाद कॉल चाइल्ड फंक्शन - c #, मल्टीथ्रेडिंग, फॉर्म

सी # माता-पिता का खुला बच्चा फॉर्म, माता-पिता के बंद होने के बाद बाल समारोह को कॉल करें - सी #, मल्टीथ्रेडिंग, फॉर्म

सौ बात की एक बात... मुझे Form_2 खोलने के लिए Form_1 की आवश्यकता है। मुझे कोड निष्पादित करने के लिए Form_2 की आवश्यकता है, AFTER Form_1 को छिपा दिया गया है। (उपयोगकर्ता हस्तक्षेप के बिना)

फिलहाल, मेरा Form_1 कोड इस प्रकार है ...।

function myFunction(){
// Create a new instance of the child form class
Form2 F2 = new Form2(this,d);
// Minimise current form
this.Hide();
// Show the child form
F2.Show();
}

F2.Show तब Form2_Shown इवेंट से आगे कोड शुरू करता है।

समस्या यह है कि मुझे Form2_Shown कोड की आवश्यकता हैफॉर्म 1 के बाद पूरी तरह से छिपा हुआ है। क्योंकि Form1.myFunction F2.Show () को कॉल करता है, तो Form2_Shown तब होगा जब फ़ॉर्म 1 पूरी तरह से "सेवानिवृत्त" नहीं होगा।

क्या वांछित परिणाम प्राप्त करने के लिए घटनाओं की इस श्रृंखला को अलग करने का एक तरीका है? Form_2 खोलें Form_1 बंद करें Form_1 में कोई शेष कनेक्शन के साथ Form_2 में कोड चलाएँ?

धागे ?? (वह उनकी उपेक्षा में कहता है)

और इससे पहले कि आप पूछें ... यह एक स्क्रीन कैप्चर एप्लिकेशन के लिए है। Form_1 बटन के साथ UI है। Form_2 एक फुलस्क्रीन पारदर्शी रूप है। क्योंकि Form_1 वहां लटका हुआ है, इसलिए यह काली छवियां बनाता है।

यदि मैं एक ही मॉडल का उपयोग करता हूं, लेकिन Form_2 में एक कुंजीपट के स्क्रीन कैप्चर को ट्रिगर करता हूं, तो सब कुछ पूरी तरह से काम करता है।

आशा है कि समझ में आता है। यदि आवश्यक हो तो मैं निश्चित रूप से कोड के पोस्ट को पढ़ सकता हूं।

बहुत धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

आप फॉर्म 2 के कंस्ट्रक्टर में फॉर्म 1 के संदर्भ में पास हो सकते हैं। फिर फॉर्म 2 के कंस्ट्रक्टर से फॉर्म 1 पर कॉल करें। हाईड () विधि। फिर, फॉर्म 2 के कंस्ट्रक्टर से फॉर्म 2 पर शो () विधि को कॉल करें।