2010-01-12 7 views
12

से विरासत मैं एक WinForms परियोजना है लोड करने के लिए विफल रहता है, और मैं विधानसभा एक कि System.Windows.Forms.Form से विरासत अपने प्रोजेक्ट पर विभिन्न रूपों के लिए एक आधार वर्ग के रूप में सेवा करने के लिए पर एक श्रेणी का निर्माण, आधार वर्ग है कुछ की तरह:विजुअल स्टूडियो 2008 Winform डिजाइनर फार्म जो सामान्य वर्ग

public partial class DataForm<T> : Form where T : class 
{ 

    T currentRecord; 

    protected T CurrentRecord 
    { 
     get 
     { 
      return currentRecord; 
     } 
     set 
     { 
      currentRecord = value; 
      CurrentRecordChanged(); 
     } 
    } 
} 

अब, जब मैं यह है कि मेरे DataForm डिजाइनर लोड नहीं होगा से विरासत है, लेकिन अगर मैं इसे संकलन एप्लिकेशन ठीक चलाता है पर विधानसभा बी एक फ़ॉर्म बनाते हैं।

प्रपत्र लगता है:

public partial class SomeTableWindow : DataForm<SomeTable> 
{ 
    public SomeTableWindow() 
    { 
     InitializeComponent(); 
    } 
} 

त्रुटि मैं हो रही है:

The designer could not be shown for this file because none of the classes within it can be designed. 
The designer inspected the following classes in the file: CultivosWindow --- The base 
class 'TripleH.Erp.Controls.DataForm' could not be loaded. Ensure the assembly has 
been referenced and that all projects have been built.  


Instances of this error (1) 

1. Hide Call Stack 

at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager) 
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager) 
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager) 
at System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host) 

इस डिजाइनर पर एक बग ?, मैं कुछ गलत कर रहा हूँ है? क्या यह कुछ कामकाज है?

आपकी मदद के लिए धन्यवाद

उत्तर

16

यह एक ज्ञात सीमा है। असल में आप जेनेरिक क्लास से प्राप्त होने वाली एक और कक्षा घोषित करके इसके आसपास काम कर सकते हैं।

उदाहरण के लिए:

class Generic<T> : UserControl 
{ 
} 

तो

class GenericInt : Generic<int> { } 

तो GenericInt बजाय सामान्य का उपयोग करें। SUcks मुझे पता है।

+0

बहुत बहुत धन्यवाद, आप सही थे। – albertein

+0

मैं पुष्टि कर सकता हूं कि यह कामकाज काम करता है। और यह काम करता है कि क्या आप असेंबली ** ए ** या असेंबली ** बी ** में इंटरमीडिएट क्लास (उदा। जेनेरिकआईएनटी) डालते हैं। –

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