9

जब कोशिश डिज़ाइन मोड में एक फार्म (VB.NET), जिसमें मैं एक कस्टम UserControl है खोलने के लिए, मैं दृश्य स्टूडियो से संदेश देखें:दृश्य स्टूडियो डिजाइनर संदेश

--------------------------- 
Microsoft Visual Studio 
--------------------------- 
The control MyNamespace.MyUserControl has thrown an unhandled exception 
in the designer and has been disabled. 

Exception: 
Cannot access a disposed object. 
Object name: 'SplitterPanel'. 

Stack trace: 
--------------------------- 
OK 
--------------------------- 

और रूप नहीं है डिजाइनर में प्रदर्शित क्या करें?

+0

मुझे सी # – Zyku

उत्तर

3

डीबग मोड के साथ प्रोजेक्ट लोड करें, और अपने उपयोगकर्ता नियंत्रण के लिए InitializeComponent() फ़ंक्शन पर ब्रेकपॉइंट डालें। आपके पास कुछ बग हो सकता है जो SplitterPanel नामक ऑब्जेक्ट का निपटान कर रहा है और उसके बाद इसे बाद में एक्सेस करने का प्रयास कर रहा है। यह प्रारंभिकता तब चलती है जब विजुअल स्टूडियो नियंत्रण प्रदान करने का प्रयास कर रहा है, जिससे आप जो त्रुटि देख रहे हैं उसे जन्म दे रहा है।

+0

में एक ही त्रुटि है धन्यवाद, याकोव। मैंने InitializeComponent पर एक ब्रेकपॉइंट लगाया, लेकिन डिज़ाइन मोड में मैं इसे रोक नहीं रहा ... MYUserControl खुद डिज़ाइनर में अच्छा प्रदर्शन कर रहा है। लेकिन यह चुड़ैल में फॉर्म को प्रदर्शित करने के लिए होस्ट नहीं किया जाता है। – serhio

+0

मेरे पास UserControl एक SplitContainer है, लेकिन SplitterPanel नामक कोई भी तत्व ... – serhio

+0

) संबंधित: http://connect.microsoft.com/VisualStudio/feedback/details/540882/the-control-control-has-thrown-an -उन-डिज़ाइन-अप-द-डिज़ाइनर-एंड-अक्षम-अक्षम – serhio

2

आप अपने प्रपत्र के डिजाइनर में देखने के लिए InitializeComponent विधि में Dispose विधि की कॉल के लिए है। कुछ इस तरह लिखा होगा:

Me.SplitterPanel.Dispose() 
इस कॉल वस्तु की वजह से

डिजाइनर में नष्ट कर। तो यह अब प्रदर्शित करने और इसका उपयोग करने के लिए मौजूद नहीं है।

इस लाइन को हटाने से समस्या का समाधान होगा।

2

विशेषता

<System.Diagnostics.DebuggerStepThrough()> _ 

InitializeComponent से() डिजाइनर के अंदर निकालें। यह आपको डिजाइनर के माध्यम से कदम उठाने की अनुमति देगा। यह जानने के लिए वास्तव में, जहां अपवाद फेंक दिया जाता है, तो आप भी जब एक CLR अपवाद

डीबग मेनू से फेंक दिया जाता है >>> अपवाद >>> बॉक्स "साझा भाषा क्रम अपवाद", "फेंका"

जाँच तोड़ सकते हैं

इन दो चरणों के साथ, आप को तोड़ने में सक्षम होना चाहिए जहां अपवाद फेंक दिया गया है।