Windows प्रपत्र के बीच वेरिएबल्स को ShowDialog के बिना Windows ()
जब आप एक Windows प्रपत्र अनुप्रयोग प्रोग्रामिंग कर रहे हैं, तो आपको एक दूसरे फ़ॉर्म विंडो से वेरिएबल्स प्राप्त करने की आवश्यकता होगी, जैसे कि विकल्प फ़ॉर्म या पॉपअप खोज प्रॉम्प्ट।.
वहां के अधिकांश मार्गदर्शक आपको बताएंगे कि आपको ShowDialog () के साथ दूसरा फ़ॉर्म खोलना होगा, जो उपयोगकर्ता को तब तक कुछ और करने से रोकता है जब तक कि उन्होंने दूसरा फ़ॉर्म विंडो बंद नहीं कर दिया हो। उदाहरण के लिए, ढूँढें / बदलें संवाद के लिए यह बहुत अच्छा काम नहीं करेगा। यह भी कस्टम तैयार पॉपअप रूपों के लिए बहुत अच्छी तरह से काम नहीं करेगा.
रूपों के बीच चर को पार करने का त्वरित तरीका डेलिगेट्स का उपयोग कर रहा है। आप दूसरे फॉर्म के समापन कार्यक्रम के लिए एक इवेंटहैंडलर सेट कर सकते हैं, और पहले फॉर्म में ईवेंट को संभाल सकते हैं। इससे आप दूसरे फॉर्म विंडो के बंद होने से पहले वेरिएबल्स को कैप्चर कर सकते हैं.
इस अभ्यास के लिए, हम मान सकते हैं कि हमारे दो रूप हैं:
मुख्य रूप
OptionsForm
हम आगे यह मानकर चल रहे हैं कि हमने कुछ प्रकार के बटन पर क्लिक किया है जो शो () विधि कॉल के साथ OptionsForm को खोलता है। अब आइए नजर डालते हैं जादू पर:
…। कटाव ... .
OptionsForm theform = नए OptionsForm ();
theform.Closing + = new CancelEventHandler (इनफॉर्म_ क्लोजिंग);
theform.Show ();निजी शून्य aform_Closing (ऑब्जेक्ट प्रेषक, CancelEventArgs e)
OptionsForm theform = (OptionsForm) प्रेषक;
// विकल्प फॉर्म से चर को पकड़ो। विकल्प फ़ॉर्म को बंद होने से पहले इस चर को सेट करना चाहिए, और चर को सार्वजनिक रूप से चिह्नित किया जाना चाहिए.
string localvar = theform.thestringvariable;
यही सब है इसके लिए.