c# - Problem with NumericUpDown type -


जब मैं ऐसा कुछ करता हूं:

  सार्वजनिक स्थिर शून्य BindData & lt; T & gt; (यह System.Windows.Forms.Control.ControlCollection नियंत्रण, टी बाँध) {foreach (नियंत्रण में नियंत्रण नियंत्रण) {if (control.GetType () == प्रकार (System.Windows.Forms.TextBox) || control.GetType () IsSubclassOf (typeof (System.Windows.Forms.TextBox))) {उपयोगिताबिंदडेटा (नियंत्रण, बाँध); } और {यदि (नियंत्रण। नियंत्रण। संख्या == 0) {उपयोगिताबिंदडेटा (नियंत्रण, बाँध); } Else {control.Controls.BindData (बाँध); }}}}} निजी स्थिर शून्य उपयोगिताबिंडडाटा & lt; T & gt; (नियंत्रण नियंत्रण, टी बाँध) {प्रकार प्रकार = control.GetType (); प्रॉपर्टीइन्फ़ो संपत्ति INFO = type.GetProperty ("बाइंडिंग प्रॉपर्टी"); अगर (propertyInfo == नल) propertyInfo = type.GetProperty ("टैग"); // शेष कोड ....  

जहां नियंत्रण है सिस्टम। विन्डोज.फॉर्म। नियंत्रण। नियंत्रण कॉल और उस फॉर्म पर नियंत्रणों के बीच में है जिसे पारित किया गया है कोड के इस टुकड़े के लिए एक पैरामीटर, वहाँ NumericUpDowns हैं, मैं नियंत्रण संग्रह (नियंत्रण = myForm.Controls) में उन्हें खोज नहीं कर सकता, लेकिन अन्य प्रकार के नियंत्रण (updownbutton, updinstit) हैं। समस्या यह है कि मुझे न्यूमेरिकअपडाउन की टैग प्रॉपर्टी प्राप्त करना है और इसे फॉर्म नियंत्रण की जांच के पुनरावर्तक विधि का उपयोग करते समय इसे प्राप्त नहीं करना है।

इसे नियंत्रण वर्ग द्वारा परिभाषित किया जाता है।

इसलिए, आपको बिल्कुल प्रतिबिंब की ज़रूरत नहीं है; आप बस लिख सकते हैं

  वस्तु टैग = control.Tag;  

आपका कोड काम नहीं कर रहा है क्योंकि नियंत्रण का वास्तविक प्रकार (जैसे, NumericUpDown ) एक अलग टैग संपत्ति को परिभाषित नहीं करता है, और GetProperty बेस क्लास गुणों को खोज नहीं करता है।


वैसे, अपने पहले अगर राजमार्ग में, आप बस लिख सकते हैं

P>
  यदि (नियंत्रण पाठ बॉक्स है)  

Comments