मैंने एक कस्टम उपयोगकर्ता नियंत्रण बनाया है, जो अनिवार्य रूप से मेरे विंडोज़ फॉर्म ऐप के भीतर एक कस्टम बटन है। मैंने निम्नलिखित कोड का उपयोग करने के लिए क्लिक ईवेंट के रीडायरेक्ट को प्रबंधित किया:
Control[] customButtonControls = button.Controls.Find("buttonInUserControl", false);
Button nestedButton = (Button)customButtonControls[0];
nestedButton.Click += new System.EventHandler(this.button_click_handling_function);
मैंने इसे नियंत्रण के लिए जेनरेट कोड के नीचे Window_Name.Designer.cs फ़ाइल में जोड़ दिया है और मेरी button_click_handling_function
को मेरी Window_Name.cs फ़ाइल में परिभाषित किया जा रहा है।
मुद्दा यह है कि जब मैं Window_Name.cs[Design] पृष्ठ पर वापस क्लिक करता हूं, तो मुझे एक त्रुटि पृष्ठ मिलता है। मैं त्रुटियों को बेहतर ढंग से दिखाने के लिए स्क्रीन शॉट्स शामिल करूंगा। मूल रूप से यह एक सुपर अनुपयोगी पृष्ठ है। यह मुझे बताता है कि मेरे पास मेरे ऐरे पर रेंज त्रुटि से बाहर एक इंडेक्स है, लेकिन स्टैक कॉल का कोई मतलब नहीं है।
अगर मैं अपना समाधान बनाने का प्रयास करता हूं, तो मुझे कोई संकलन त्रुटियां नहीं मिलती हैं और मेरा प्रोग्राम बिल्कुल इरादे से कार्य करता है। क्लिक इवेंट पहले की तरह ही फंक्शन को ट्रिगर करता है।
अग्रिम में धन्यवाद।
1 उत्तर
डिज़ाइनर कोड के भाग डिज़ाइन-समय पर चलाए जाते हैं। इंडेक्स आउट ऑफ़ रेंज एरर शायद इसलिए है क्योंकि डिज़ाइन-टाइम पर उस फाइंड कॉल द्वारा अभी तक कोई नियंत्रण नहीं मिला है, इसलिए एरे खाली है। आप 0 लंबाई की जांच नहीं कर रहे हैं, इसलिए जब आप इसे संदर्भित करते हैं तो आपको त्रुटि मिलती है। यह रन-टाइम पर काम करता है क्योंकि उस समय नियंत्रणों को तत्काल कर दिया गया है।
दूसरी समस्या यह है कि आपको चीज़ों को Designer.cs फ़ाइलों में नहीं डालना चाहिए क्योंकि वह कोड डिज़ाइनर द्वारा स्वतः उत्पन्न होता है और किसी बिंदु पर पुन: उत्पन्न किया जा सकता है और आपका जोड़ा कोड खो जाता है। उस कोड को InitializeComponent कॉल के बाद Window_Name.cs में रखें।
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।