tôi có dự án winforms và tôi đã tạo một lớp học trên assembly A kế thừa từ System.Windows.Forms.Form
để làm lớp cơ sở cho các biểu mẫu khác nhau trong dự án của tôi, các lớp cơ sở là một cái gì đó như:Visual Studio 2008 Trình thiết kế Winform không tải Biểu mẫu kế thừa từ lớp chung
public partial class DataForm<T> : Form where T : class
{
T currentRecord;
protected T CurrentRecord
{
get
{
return currentRecord;
}
set
{
currentRecord = value;
CurrentRecordChanged();
}
}
}
Bây giờ, khi tôi tạo một biểu mẫu trên lắp ráp B được thừa kế từ DataForm tôi thiết kế sẽ không tải, nhưng nếu tôi biên dịch nó ứng dụng chạy tốt.
Hình thức trông giống như:
public partial class SomeTableWindow : DataForm<SomeTable>
{
public SomeTableWindow()
{
InitializeComponent();
}
}
Các lỗi tôi nhận được là:
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)
Đây có phải là một lỗi trên thiết kế ?, Tôi có làm điều gì sai? Có cách giải quyết nào không?
Cảm ơn sự giúp đỡ của bạn
Cảm ơn bạn rất nhiều, bạn đã đúng. – albertein
Tôi có thể xác nhận rằng cách giải quyết này hoạt động. Và nó hoạt động cho dù bạn đặt lớp trung gian (ví dụ: GenericInt) trong assembly ** A ** hoặc assembly ** B **. –