दिलचस्प पोस्ट
एएसपी.नेट में सत्र का समय समाप्त यह ऐप तब तक नहीं चलेगा जब तक आप Google Play सेवाएं अपडेट नहीं करेंगे (बाज़ार के माध्यम से) एंज्यूलर जेएस में दृश्य अपडेट नहीं किया गया है एक गणित पार्सर के स्मार्ट डिजाइन? जेपीईजी छवि को सी # बेस 64 स्ट्रिंग डब्ल्यूसीएफ नामित पाइप का न्यूनतम उदाहरण सीएसएस का प्रयोग करके आईई 8 में अक्षम एचटीएमएल कंट्रोल का रंग कैसे बदल सकता है मैं एक्सएसडी फाइलों से डेटाबेस तालिकाओं को कैसे बना सकता हूं? PhantomJS को HTTPS साइट खोलने में विफल उन फ़ाइलों को अनदेखा करें जो पहले से ही एक Git रिपॉजिटरी के लिए प्रतिबद्ध हैं आर और स्टेटा में ग्लोबल्स के खतरों के उदाहरण मार्कडाउन में टिप्पणियाँ com.jcraft.jsch.JSchException: अज्ञातहॉस्टकी लॉक / अनलॉक स्क्रीन प्रोग्राम कैसे करें? प्रतीकों को बदलने, अंग्रेजी वर्णमाला को एक्सेंट लेटर्स

मूल्य को एक रूप से दूसरे में पास करें

मेरे पास दो रूप हैं, और मुझे form1.textbox1 से form2.variable में से एक मान देना होगा

फॉर्म 1:

string Ed = "", En = ""; public string En1 { get { return En; } set { En = value; } } public string Ed1 { get { return Ed; } set { Ed = value; } } private void button1_Click(object sender, EventArgs e) { Form2 F2 = new Form2(); F2.Show(); F2.textbox1value = Ed; F2.textbox2value = En; } 

`और फॉर्म 2:

 public string textbox1value { get { return textBox1.Text; } set { textBox1.Text = value; } } public string textbox2value { get { return textBox2.Text; } set { textBox2.Text = value; } } private void button1_Click(object sender, EventArgs e) { Form1 F1 = new Form1(); F1.Ed1 = textBox1.Text; F1.En1 = textBox2.Text; } 

जब मैं form2 पर "सेव्यू" पर क्लिक करता हूं और खुले डीबग पर क्लिक करता हूं, तो मुझे "एड = 3; एन = 5" दिखाई देता है, लेकिन जब मैं फॉर्म 1 पर खुला "फॉर्म 2" पर क्लिक करता हूं और डीबग खोलता हूं, तो मुझे "एड = रिक्त; एन = नल;" और पाठ बॉक्स में मूल्य के बिना रिक्त फॉर्म दिखाता है कृपया मदद करें।

वेब के समाधान से एकत्रित समाधान "मूल्य को एक रूप से दूसरे में पास करें"

आप एक नया फॉर्म बनाते हैं, इसलिए पुराने मूल्य खो जाएंगे। डिफ़ॉल्ट मान शून्य हैं

 Form1 F1 = new Form1(); //I'm a new Form, I don't know anything about an old form, even if we are the same type 

आप स्थैतिक वार्स का उपयोग कर सकते हैं, जो आपके लक्ष्य को संग्रहित करने का सबसे आसान समाधान होगा, लेकिन कन्स्ट्रक्टर, कंटेनर, इवेंट आदि जैसे अन्य तरीके हैं।

 public static string En1 { get { return En; } set { En = value; } } public static string Ed1 { get { return Ed; } set { Ed = value; } } 

और अन्य रूप में

 private void button1_Click(object sender, EventArgs e) { Form1 F1 = new Form1(); Form1.Ed1 = textBox1.Text; Form1.En1 = textBox2.Text; } 

कृपया सलाह दीजिए कि एक क्लास के लिए एक स्थैतिक चर केवल एक बार मौजूद है इसलिए यदि आपके पास कई उदाहरण हैं और आप स्थिर वैरिएबल को एक में बदलते हैं, तो परिवर्तन भी अन्य सभी उदाहरणों को प्रभावित करता है

आप form2 2 के लिए form2 बना सकते हैं जो 2 तर्कों को स्वीकार करते हैं और इन चर का उपयोग करते हैं

 Form2 frm2 = new Form2(textBox1.Text,textBox2.Text); frm2.Show(); 

कन्स्ट्रक्टर ऐसा दिखेगा

 public Form2(string txt1,string txt2) { InitializeComponent(); textbox1value.Text = txt1; textbox1value.Text=txt2 } 

इस तरह के रूपों के बीच डेटा को पास करने के कई तरीके हैं

  1) Using constructor 2) Using objects 3) Using properties 4) Using delegates 

विवरण के लिए इस लिंक को देखें http://www.codeproject.com/Articles/14122/Passing-Data-Between-Forms

आशा करता हूँ की ये काम करेगा!

डीबगर कुछ भी शिकायत नहीं करता है? हम्म। हो सकता है कि आप अपने बटन 1-क्लिक विधि को फॉर्म 1 में संशोधित करने का प्रयास कर सकते हैं:

 private void button1_Click(object sender, EventArgs e) { Form2 F2 = new Form2(); Form2.Parent = this; F2.Show(); F2.textbox1value = F2.Parent.Ed; F2.textbox2value = F2.Parent.En; } 

form2 की जानकारी की एक प्रति हमेशा form2 में रखें, यह है:

जब उपयोगकर्ता form2 पर सहेज form2 क्लिक करता है तो जानकारी form2 के स्थानीय वेरिएबल में जाती है और फिर form2 2 एक ईवेंट चलाती है ( form2 कह रही है कि उसकी जानकारी सहेजी जानी चाहिए)। form2 में आप इस घटना को from1 हैं और form2 को बताते हैं कि जब भी यह ईवेंट 1 से चलाया जाता है, तो form2 की जानकारी को अपने आप में कॉपी कर from1 चाहिए।

दूसरी ओर जब भी आप form2 खोल रहे हैं, आपको पहले यह जानकारी वापस देनी चाहिए और फिर show() विधि को निष्पादित करना चाहिए। इसके बाद आपको form2 के shown() तरीके से उस तरीके से संभालना चाहिए कि जब कभी यह दिखाया जाता है, पहले form2 को संबंधित टेक्स्टबॉक्स आदि की जानकारी रखनी चाहिए …

यह फॉर्म 2 में फॉर्म 1 का एक उदाहरण बनाकर आसानी से प्राप्त किया जा सकता है। यह एक दृष्टिकोण है।

उनके नक़्शे – कदम पर चलिए:

फॉर्म 1 में: सुनिश्चित करें कि आपका नियंत्रण सार्वजनिक है

  eg: txtForm1.Text = "Bangalore"; 

फॉर्म 2 में:

चरण 1: विश्व स्तर पर फ़ॉर्म 1 का एक उदाहरण बनाएं यदि उदाहरण स्थानीय रूप से बनाया जाता है नियंत्रण से निहित मूल्य का उपयोग नहीं किया जा सकता है, तो केवल रिक्त मान वापस कर दिया जाएगा, यहां तक ​​कि डेटा इसके लिए बसा हुआ है।

चरण 2: प्रपत्र 1 के उदाहरण से नियंत्रण के मूल्य को पुनर्प्राप्त करें।

  eg: Form1 frm1 = new Form1(); string Form1Value = frm1.txtForm1.Text 

यदि आप मान को स्थिर मानते हैं, तो आप इसे सीधे फॉर्म 1 में पहुंच सकते हैं और आप इसे फॉर्म 2 से एक्सेस कर सकते हैं:

 static public string Text_; string PassedValue_=Form1.Text_; 

यह सवाल बूढ़ा हो सकता है, लेकिन वैसे भी …

ऐसा करने का एक और तरीका है, फ़ॉर्म 2 में एक कन्स्ट्रक्टर बनाने के लिए जो उसी प्रकार के डेटा के तर्क को स्वीकार करता है जिसे आप पास करना चाहते हैं, और, जब फॉर्म 1 में बटन क्लिक किया जाता है, तो आप उस निर्माता का उपयोग करके फ़ॉर्म 2 का उदाहरण बनाते हैं तर्क, और इसे करने के लिए डेटा पास

 //Form1 Form2 form2; button1_clic(object sender, eventArgs e) { form2 = new Form2(textbox1.text); form2.Showdialog(); } //Form2 string var = string.empty; public Form2(string val) { InitializeComponents(); var = val; }