आपको उन्हें जितना संभव हो उतना दिखाना चाहिए, लेकिन ऊपर माइक द्वारा बताए गए अनुसार, यह UserControls के साथ समस्याएं उत्पन्न करता है और वीएस डिजाइनर का उपयोग करता है वे फॉर्म या अन्य UserControls पर नियंत्रण।
तो एक सामान्य नियम के रूप में, सभी कक्षाओं और उपयोगकर्ता नियंत्रणों को रखें जिन्हें आप डिज़ाइनर का उपयोग करके जोड़ रहे हैं, जैसा कि उन्हें होना चाहिए। यह बताएं कि आप एक उपयोगकर्ता नियंत्रण बना रहे हैं जिसे आप डिज़ाइनर में उपयोग करना चाहते हैं (भले ही वह एक ही असेंबली के भीतर है) आपको यह सुनिश्चित करने की आवश्यकता होगी कि UserControl क्लास, इसके डिफ़ॉल्ट कन्स्ट्रक्टर और किसी भी गुण, और ईवेंट डिज़ाइनर के लिए सार्वजनिक किए गए हैं इसके साथ काम करने के लिए।
मुझे हाल ही में एक समस्या थी जहां डिजाइनर InitializeComponent() विधि से this.myControl = new MyControl() लाइन को हटा रहा था क्योंकि UserControl MyControl को इसके कन्स्ट्रक्टर के साथ आंतरिक के रूप में चिह्नित किया गया था।
यह वास्तव में एक बग है जो मुझे लगता है क्योंकि भले ही उन्हें आंतरिक के रूप में चिह्नित किया गया हो, फिर भी वे डिज़ाइनर में जोड़ने के लिए टूलबॉक्स में दिखाई देते हैं, या तो माइक्रोसॉफ्ट को केवल सार्वजनिक रचनाकारों के साथ सार्वजनिक नियंत्रण दिखाने की ज़रूरत है, या उन्हें इसे काम करने की आवश्यकता है आंतरिक नियंत्रण के साथ-साथ।
स्रोत
2010-11-25 03:16:44
एक महान सादृश्य के लिए +1। –
इसके बगल में, इसे सक्रिय करने से पहले सक्रिय नहीं किया गया है ;-) – izbrannick