Fer*_*hez 2 vb.net visual-studio-2010 winforms
我在VB.NET中运行Windows Forms App它运行正常,我手动添加了一些代码事件,没有设计器,如下所示:
Private Sub bindingNavigatorAddNewItem_Click(sender As System.Object,e As System.EventArgs)处理BindingNavigatorAddNewItem.Click
namesBindingSource.AddNew()
结束子
而Form1.Designer.vb,InitializeComponent方法就是这个代码
AddHandler Me.BindingNavigatorAddNewItem.Click,AddressOf Me.bindingNavigatorAddNewItem_Click
现在,即使表单运行正常,事件也正确执行; 表单在设计时失败并出现错误:
值不能为空.参数名称:objectType
在System.ComponentModel.TypeDescriptor.TypeDescriptionModel.TypeDescriptor.TypeDescriptionNode.GetRuntimeType(Type objectType)at System.ComponentModel.TypeDescriptionProvider.GetRuntimeType(Type reflectionType)at Microsoft.VisualStudio.Design.MultiTargetingContextProvider.GetRuntimeType(Type objectType)at Microsoft.VisualStudio.Design.Serialization.CodeDom Microsoft.VisualStudio.Design.Serialization.CodeDom.HandlesClauseManager中的.HandlesClauseManager.GetFieldType(String fieldName,Type documentBaseType)at Microsoft.VisualStudio.Design.Serialization.CodeDom.HandlesClauseManager.GetReferencedComponentType(String componentName,CodeTypeDeclaration codeTypeDecl,ITypeResolutionService loader,IDictionary&cache)位于System.ComponentModel.Design.Serialization.TypeCodeDomSe的System.CodeDom.CodeMemberMethod.get_Statements()的Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.OnMethodPopulateStatements(Object sender,EventArgs e)中的.ParseHandlesClauses(CodeTypeDeclaration codeTypeDecl,Boolean updateCache)在System.ComponentModel.Design上的Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)的System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)中的rializer.Deserialize(IDesignerSerializationManager manager,CodeTypeDeclaration declaration) .Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
现在,我注意到如果我通过设计器而不是手动绑定事件,就不会发生这种情况.
但是我仍然需要手动完成,因为它最终会由一些DTE自动化代码生成.
另外如果在错误之后按下"忽略并继续"链接,它会在设计时显示表格,但为什么它首先失败?
小智 8
以下是您解决此问题的方法:
打开表单设计器.它正常打开吗?
如果是的话,你就走在了正确的轨道上.
把代码放回去; 一点一点地继续删除代码,直到您的表单打开.您删除的最后一个代码是问题.
当事件处理程序包含对不存在的对象的引用时,会发生这种情况.例如,如果在表单上放置一个按钮,则创建Click事件处理程序,然后从表单中删除此按钮.
| 归档时间: |
|
| 查看次数: |
11449 次 |
| 最近记录: |