winform窗体继承泛型类时,设计器无法使用解决办法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jy02149522/article/details/78981661

当我们使用winform程序时,winform窗体程序和控件程序都是可以通过设计器进行控件拖拽的,但如果我们继承了一个带有泛型的form基类.那么设计器是无法使用的.

目前我没有找到根本解决的办法,但可以间接解决无法调试的问题. 下面具体说明如何实现

比如我们有FormA,BaseForm<Entity>, FormA : BaseForm<XXX> 这样直接继承是无法使用设计器的. 需要增加一个临时的form类,比如TempForm.

由TempForm先继承BaseForm,   然后FormA : TempForm 这样就可以使用设计器面板了.

所以在项目中就保留一个这样的form来解决无法使用设计的问题吧. 等代码完成再改过来,编译是不报错的. 但不要使用设计器,设计器会提示你忽略之类的,不要点.

 

展开阅读全文

继承抽象基类的窗体无法打开UI设计器的问题

12-07

问题截图如下:rn[img=http://img.my.csdn.net/uploads/201212/07/1354892727_7542.jpg][/img]rnrn我想实现的效果说明:rn1、在基类中把按钮的位置放置好,避免子类重复设置按钮rn2、在基类中把各个按钮的单击事件注册好,避免在子类中重复设置按钮的单击事件rn3、在基类中定义每个按钮单击事件调用的抽象方法,这些抽象方法是需要子类去实现的,这样子类一继承基类就自动生成了各个需要实现的抽象方法的架构,直接将需要的代码填充到相应的方法中就可以实现相应的功能了,考虑过不用抽象方法,而是使用虚方法,但是使用虚方法继承的时候不能自动把各个需要重写的方法填充到代码区中,需要人为自己指定重写哪个方法,这样一是输入量稍微多一些,二是如果一旦重写的方法不完全就会有一些功能实现不了,也考虑过用基类继承接口的方式把方法写到接口中,但是没有找到什么办法能够做到我需要的效果,代码及界面截图如下,不知道我想要实现的效果怎么能够做到,或者说这种效果能够做到不。rn[img=http://img.my.csdn.net/uploads/201212/07/1354893334_5309.jpg][/img]rn[img=http://img.my.csdn.net/uploads/201212/07/1354893355_1170.jpg][/img]rn[img=http://img.my.csdn.net/uploads/201212/07/1354893373_6256.jpg][/img]rn[img=http://img.my.csdn.net/uploads/201212/07/1354893391_8166.jpg][/img] 论坛

继承一个类 查看设计器时出错 

08-02

自己写了一个类继续Form,其它Form页面继续这个类,在查看设计器时出现以下错误,很急在线等rnrn无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。 rn隐藏 rnrn在 System.Reflection.Module.GetTypesInternal(StackCrawlMark& stackMark)rn在 System.Reflection.Assembly.GetTypes()rn在 Microsoft.VisualStudio.Shell.Design.AssemblyObsoleteEventArgs..ctor(Assembly assembly)rn在 Microsoft.VisualStudio.Design.VSDynamicTypeService.ReloadAssemblyIfChanged(String codeBase)rn在 Microsoft.VisualStudio.Design.VSDynamicTypeService.CreateDynamicAssembly(String codeBase)rn在 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly()rn在 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description)rn在 Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchProjectEntries(AssemblyName assemblyName, String typeName, Boolean ignoreTypeCase, Assembly& assembly)rn在 Microsoft.VisualStudio.Design.VSTypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, ReferenceType refType)rn在 Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name, Boolean throwOnError, Boolean ignoreCase)rn在 Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name)rn在 System.ComponentModel.Design.DesignerHost.System.ComponentModel.Design.IDesignerHost.GetType(String typeName)rn在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)rn在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)rn在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)rn在 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host) rn 论坛

没有更多推荐了,返回首页