WinForm的.Designer.cs代码内抛反射异常

今天在项目内一个Winform增加控件后,无法打开,抛如下异常。

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at CM.CTOS.VesselDocument.CovCodControl.InitializeComponent() in C:\Test\TestForm.Designer.cs:line 2547
at CM.CTOS.VesselDocument.CovCodControl..ctor() in C:\Test\TestForm.cs:line 153
at CM.CTOS.VesselDocument.CovCodForm.InitUserControl() in C:\Test\TestForm.cs:line 58
at CM.CTOS.VesselDocument.CovCodForm..ctor() in C:\Test\TestForm.cs:line 43
--- End of inner exception stack trace ---
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at CM.CTOS.WinUIAdmin.MenuManager.SubMenuClick(Object sender, EventArgs e) in C:\Test\MenuManager.cs:line 267

经检查,出错代码在..Designer.cs:line 2547。此代码是VisualStudio自动生成的,没理由出错。

后来经同事提醒,打开TestForm.resx文件时,VisualStudio提示有重复,原来我新控件后,对控件重命名了(只改了名字的大小写),这样导致了TestForm.resx出现大小写名称不同的项,清除废弃项后,WinForm正常。

这应该是VisualStudio的Bug.

时间: 2024-11-09 00:52:24

WinForm的.Designer.cs代码内抛反射异常的相关文章

asp.net WebForm程序删除.designer.cs文件之后的故事

1.介绍 正常情况下添加一个WebForm程序结构如下(命名为:myWebForm.aspx) 文件说明:.aspx文件:书写html代码部分,以及javascript,css等代码书写及引用 .aspx.cs文件:服务器端,使用C#代码处理客户端发过来的请求,做出相应的响应 .aspx.designer.cs文件:视图窗体创建文件,绘制在服务器端需要的控件,即相当于初始化的部分 现在的需求是: 将.aspx.designer.cs文件删除,在页面类里面添加一个在服务器端运行的控件Button和

关于aspx.designer.cs的研究

.aspx文件..aspx.cs文件和.aspx.designer.cs的一些说明 .aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件中. .aspx.cs文件:(代码隐藏页)书写类代码.存储的是程序代码.一般存放与数据库连接和数据库相关的查询.更新.删除操作,还有各个按钮单击后发生的动作等. .aspx.designer.cs文件:书写页面设计代码.通常存放的是一些页面控件中的控件的配置信息,就是注册控件页面.这个东西是窗体设计

aspx文件、aspx.cs文件、aspx.designer.cs文件之讲解

.aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件中. .aspx.cs文件:(代码隐藏页)书写类代码.存储的是程序代码.一般存放与数据库连接和数据库相关的查询.更新.删除操作,还有各个按钮单击后发生的动作等. .aspx.designer.cs文件:书写页面设计代码.通常存放的是一些页面控件中的控件的配置信息,就是注册控件页面.这个东西是窗体设计器生成的代码文件,作用是对窗体上的控件执行初始 <%@ Page Language=

来篇文章:ASP。NET程序中动态修改web.config中的设置项目 (后台CS代码)

朋友们可以自行测试,我这里都没有问题了,鳖了一上午的问题总算解决了 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; usi

关于aspx.designer.cs

.aspx文件..aspx.cs文件和.aspx.designer.cs的一些说明 .aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件中. .aspx.cs文件:(代码隐藏页)书写类代码.存储的是程序代码.一般存放与数据库连接和数据库相关的查询.更新.删除操作,还有各个按钮单击后发生的动作等. .aspx.designer.cs文件:书写页面设计代码.通常存放的是一些页面控件中的控件的配置信息,就是注册控件页面.这个东西是窗体设计

designer.cs 删除后怎么恢复?(复制aspx修改名字后重新生成页面)

项目需要,经常拷贝页面过来修改,老是遇到页面出各种问题,对常见问题总结如下: 1.修改页面命名空间: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="XXX文件名.aspx.cs" Inherits="XXX命名空间" %> 2.designer.cs 内命名空间如果没有改变,可以删除designer.cs从新新建,具体步骤: 删除掉.aspx.d

C# DataSet.Designer.cs

今天在做项目的时候,发现一个很奇葩的问题,VS 中DataSet数据集的问题Dataset数据集更新,在保存后原有的Dataset.Designer.cs不变,又增加一个新的Dataset1.Designer.cs文件是怎么回事?今天在网上看到有一个很好的解决方法:0.先把项目中的Dataset1.Designer.cs和Dataset.Designer.cs彻底删除1.关闭解决方案2.去找Dataset所在的[工程文件]=>以".csproj"结尾的文件3.用文本的方式打开4.

C# 窗体文件下的 Designer.cs .resx 后缀的文件

现在很多朋友用上最新的IDE去开发C#,就会忽略一个问题,窗体的矢量图图标和逻辑方法的分离,是如何做到分离的. 这个问题从早期的VS2005就能很好的解说. 早期,我们编写一个界面,文件夹是 frame.cs 然而随着我们个性话发展,常常要修改默认图标或是其他资源的排放,亦或是对逻辑的实时更新. 于是我们将逻辑操作和显示层分离.frame.designer.resx 例如.我写一个button ,功能是跳转如另一个界面,这个button选用我个人头像,那么我就把button资源和大小,位置等设置

asp.net aspx.designer.cs文件不自动更新

一般情况下,对aspx进行编辑后,所对应的aspx.designer.cs文件会自动更新, 但有时候vs会拒绝自动更新. 1.当aspx里面有错时: 2.标签名不规范时,如: <asp:Panel/>写成 <asp:panel/> 后续补充中... 原文地址:https://www.cnblogs.com/sanpingx/p/10330873.html