2008-08-12 12 views
27

में कोई फ़ॉर्म लोड करने में त्रुटि "प्रकार नहीं मिल सका" मेरे पास .NET 2.0 विंडोज़ फॉर्म ऐप है, जो ListView नियंत्रण का भारी उपयोग करता है।विंडोज फॉर्म डिज़ाइनर

मैंने ListView कक्षा को एक टेम्पलेट SortableListView<T> कक्षा में उपclassed है, इसलिए यह चीजों को प्रदर्शित करने के तरीके के बारे में थोड़ा सा स्मार्ट हो सकता है, और स्वयं को सॉर्ट कर सकता है।

दुर्भाग्य से इस दृश्य स्टूडियो फार्म डिजाइनर तोड़ने के लिए लगता है, दोनों VS2005 में और 2008

कार्यक्रम संकलित करता है तथा ठीक चलाता है, लेकिन जब मैं डिजाइनर में मालिक फ़ॉर्म को देखने का प्रयास करें, मैं इन त्रुटियों को मिलता है:

  • टाइप 'MyApp.Controls.SortableListView' नहीं मिला। कृपया सुनिश्चित करें कि इस प्रकार के असेंबली का संदर्भ दिया गया है। यदि यह प्रकार आपके विकास प्रोजेक्ट का हिस्सा है, तो सुनिश्चित करें कि परियोजना सफलतापूर्वक बनाई गई है।

इस त्रुटि

  • चर 'listViewImages' के लिए कोई स्टैक ट्रेस या त्रुटि लाइन जानकारी उपलब्ध है या तो अघोषित या सौंपा कभी नहीं किया गया है।

MyApp.Main.Designer.cs लाइन पर: XYZ स्तंभ: 1

Call stack: 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement) 

प्रश्न में कोड की पंक्ति है, जहां यह वास्तव में रूप में जोड़ा जाता है, और

this.imagesTab.Controls.Add(this.listViewImages); 
है

listViewImages

private MyApp.Controls.SortableListView<Image> listViewImages; 

के रूप में घोषित किया जाता है और वें में instantiated है ई InitializeComponent विधि इस प्रकार है:

this.listViewImages = new MyApp.Controls.SortableListView<Image>(); 

जैसा कि पहले उल्लेख, इस कार्यक्रम को संकलित करता है और पूरी तरह से चलाता है, और मैं एक अलग विधानसभा के लिए SortableListView वर्ग बाहर स्थानांतरण की कोशिश की है तो यह अलग से संकलित किया जा सकता है, लेकिन यह कोई फर्क नहीं पड़ता ।

मुझे नहीं पता कि यहां से कहाँ जाना है। किसी भी सहायता की सराहना की जाएगी!

उत्तर

6

जब आपने सूचीदृश्य जोड़ा, तो क्या आपने इसे टूलबॉक्स में जोड़ा और फिर इसे फ़ॉर्म में जोड़ दिया?

नहीं, मैं बस Main.Designer.cs संपादित और यह System.Windows.Forms.ListView से MyApp.Controls.SortableListView<Image>

करने के लिए बदल संदेह यह हो सकता है की वजह से जेनरिक नेतृत्व मुझे वास्तव में एक समाधान पाने के लिए।

प्रत्येक वर्ग है कि मैं के लिए एक SortableListView बनाने की जरूरत के लिए, मैं तो इस

class ImagesListView : SortableListView<Image> { } 

की तरह एक 'ठूंठ क्लास' में परिभाषित किया गया Main.Designer.cs फ़ाइल SortableListView के बजाय इन ठूंठ वर्गों का उल्लेख कर दिया।

अब यह काम करता है, हुरे!

शुक्र है कि मैं ऐसा करने में सक्षम हूं क्योंकि मेरे सभी प्रकार सामने आते हैं, और मैं केवल डुप्लिकेट कोड को कम करने की विधि के रूप में SortableListView का उपयोग कर रहा हूं।

+0

हाय ओरियन ... जैसा कि आपने ऊपर बताया है, मुझे वही समस्या है ... मैं भाग को समझने में सक्षम नहीं था "प्रत्येक वर्ग के लिए जिसे मुझे सॉर्ट करने योग्य लिस्ट व्यू बनाने की आवश्यकता है, मैंने एक 'स्टब क्लास' यह वर्ग छवियांसूची दृश्य: SortableListView {} "इस समस्या को हल करने के लिए आपने क्या किया? क्या आप थोड़ा विस्तार से समझा सकते हैं? क्या आपने एक और नई कक्षा बनाई और फिर डिजाइनर.cs को संदर्भित किया? –

6

मुझे इस तरह की समस्या थी (अतीत में वही नहीं) जहां मेरा नियंत्रण मेरे रूप में एक अलग नामस्थान में था, भले ही यह एक ही प्रोजेक्ट में था। इसे ठीक करने के लिए मुझे

using My.Other.Namespace; 

डिज़ाइनर जेनरेट कोड फ़ाइल के शीर्ष पर जोड़ना पड़ा। डिजाइनर ने पृष्ठ को फिर से उत्पन्न करते समय परेशान चीज को उड़ा दिया था।

2

असेंबली जिसमें MyApp.Controls.SortableListView शामिल है, किसी भी मौके से जीएसी में स्थापित नहीं है?

2

जब आपने सूचीदृश्य जोड़ा, तो क्या आपने इसे टूलबॉक्स में जोड़ा और फिर इसे फ़ॉर्म में जोड़ें?

1

मेरे पास कुछ समान था - एक उपयोगकर्ता नियंत्रण रिमोट सेरीस का जिक्र कर रहा था (जिसे मैं डिजाइन समय पर उपलब्ध होने की गारंटी नहीं दे सकता था)।

This post on MSDN सुझाव दिया है कि मैं नियंत्रण से लोड कार्य करने के लिए

if (this.DesignMode) return; 

जोड़ सकते हैं या बिंदु से पहले WCF ग्राहक initialised गया था करने के लिए मेरे मामले में। वह चाल है।

तो

private readonly Client _client = new Client(); 

private Client _client; 

public new void Load() 
{ 
    if(DesignMode) return; 
    _client = new Client(); 
} 
2

शायद आपको लगता है कि जोड़ने के लिए भूल गया हो जाता है:

/// <summary> 
    /// Required designer variable. 
    /// </summary> 
    private System.ComponentModel.IContainer components = null; 

    /// <summary> 
    /// Release all resources used. 
    /// </summary> 
    /// <param name="disposing">true if managed resources should be removed otherwise; false.</param> 
    protected override void Dispose(bool disposing) 
    { 
     if (disposing && (components != null)) 
     { 
      components.Dispose(); 
     } 
     base.Dispose(disposing); 
    } 

    private void InitializeComponent() 
    { 
     // ... 
     this.components = new System.ComponentModel.Container(); // Not necessarily, if You do not use 
     // ... 
    } 
5

मैं इस समस्या थी भी, बड़े पैमाने पर SVN परिवर्तन विलय (विवादों सहित) से संबंधित * डिज़ाइनर सीएस फ़ाइल में। समाधान केवल ग्राफिक रूप से डिज़ाइन दृश्य को खोलना था, एक नियंत्रण संपादित करें (इसे बाएं से दाएं स्थान पर ले जाएं) और डिज़ाइन को पुन: सहेजें। *। डिज़ाइनर सीएस फ़ाइल जादुई रूप से बदल गई, और चेतावनी अगले संकलन पर चली गई।

स्पष्ट होने के लिए, आपको पहले कोड विलय समस्याओं को ठीक करने की आवश्यकता है। वीएस को फिर से लोड करने के लिए मजबूर करने के लिए यह सिर्फ एक काम है।

+3

यह बस सच नहीं है। यदि आपको इनमें से कोई भी चेतावनी मिलती है, तो ग्राफ़िकल दृश्य टूटा हुआ है। कुछ भी नहीं दिखाया जाएगा और इसलिए आप इसे "जादूगर रूप से ठीक करने के लिए कुछ स्थानांतरित नहीं कर सकते"। ओप की शिकायत होने के कारण त्रुटियों की एक सूची है और कोई गुई नहीं है। –

+0

मैं दृढ़ता से असहमत हूं; यह मेरे लिए एक आकर्षण की तरह काम किया (फ्रेमवर्क 4.0 का उपयोग कर)। शुरुआत में डिजाइनर चेतावनियों को प्रदर्शित करने के लिए कुछ सेकंड के लिए shoed, तो फार्म ठीक से खींचा गया था। मैंने एक बटन जोड़ा, बटन हटा दिया, और समाधान का पुनर्निर्माण किया; चेतावनी सभी गायब हो गए। –

+0

डिर्क - आप सोच सकते हैं कि यह सच नहीं है, लेकिन यह मेरे साथ हुआ है। मैंने इसे ठीक करने की कोशिश करने के लिए घंटों बिताए। काश मैं अभी भी Designer.cs फ़ाइल के संस्करणों के पहले और बाद में था, लेकिन मैं नहीं करता। विजुअल स्टूडियो में स्पष्ट रूप से एक बग है जो कुछ आंतरिक मेटा डेटा को ठीक से रीफ्रेश नहीं करता है, और इसे ठीक करने के लिए एकमात्र तरीका है जिसे ग्राफ़िकल व्यू को सहेजकर ताज़ा करना है। –

-2

मेरे मामले में समस्या मेरे प्रोजेक्ट का फ़ोल्डर का नाम था! मुझे ऐसा क्यों लगता है: मैं एसवीएन का उपयोग करता हूं और 'ट्रंक \ SGIMovel' में पूरी तरह से काम करता है। लेकिन 'ओएस # 125 \ एसजीआईमोवेल' नामक शाखा फ़ोल्डर में मैं एक ऐसे फॉर्म के लिए डिज़ाइनर नहीं खोल सकता जो कस्टम नियंत्रण का उपयोग करता है और ट्रंक फ़ोल्डर में काम करता है।

बस # बंद करें और अच्छा काम करता है।

कुछ भी नहीं के लिए धन्यवाद।

1

मुझे एक ही समस्या थी। मेरे मामले में यह समस्या संसाधन प्रारंभिकरण के कारण थी। मैंने InitializeComponent विधि से निम्नलिखित कोड को ctor में ले जाया है (InitializeComponent पर कॉल करने के बाद)।इसके बाद इस मुद्दे को हल किया गया:

this->resources = (gcnew System::ComponentModel::ComponentResourceManager(XXX::typeid)); 
15

यह x86/x64 आर्किटेक्चर के कारण मेरे साथ हुआ।

चूंकि विजुअल स्टूडियो (विकास उपकरण स्वयं) में कोई x64 संस्करण नहीं है, इसलिए जीआईआई डिजाइनर में x64 नियंत्रण लोड करना संभव नहीं है।

इसके लिए सबसे अच्छा तरीका x86 के तहत जीयूआई ट्यूनिंग हो सकता है, और आवश्यक होने पर इसे x64 के लिए संकलित कर सकता है।

+2

निश्चित रूप से, मेरे लक्ष्य सीपीयू को x86 में बदलने के लिए यह समस्या मेरे लिए तय की गई है। धन्यवाद! – johnnyRose

+3

यह माइक्रोसॉफ्ट के हिस्से पर ऐसा पूरा बीएस है। –

+3

मैं वास्तव में विजुअल स्टूडियो का एक x64 संस्करण चाहता हूं। – user2033412

0

मुझे एक ही समस्या है। * Designer.cs-File के अपने कुछ नियंत्रणों को हटाने के बाद समस्या हल हो गई थी। मूल कोड पर वापस जाने के बाद समस्या अभी भी हल हो गई थी। तो यह दृश्य सुडियो कैश के साथ एक समस्या प्रतीत होता है। फिलहाल मैं इस समस्या को पुन: उत्पन्न नहीं कर सकता।

आप समस्या फ़ोल्डर

सी emtpy करने की कोशिश है, तो: \ Users \ yourname \ AppData \ Local \ Microsoft \ VisualStudio \ संस्करण \ डिजाइनर \ ShadowCache

यह काम किया?

संबंधित मुद्दे