我已经创建了一个自定义数据网格控件。我把它拖到windows窗体上,并设置它的属性,如列和所有&运行该项目。它成功构建,我可以在窗体上查看网格控件。VS 2008设计师和用户控件
现在,如果我尝试在设计这种形式,我收到以下错误..
Object reference not set to an instance of an object.
Instances of this error (1)
1. Hide Call Stack
at Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.GetMemberTargetObject(XmlElementData xmlElementData, String& member)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.CreateAssignStatement(XmlElementData xmlElement)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.XmlElementData.get_CodeDomElement()
at Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.EndElement(String prefix, String name, String urn)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.Parse(XmlReader reader)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.ParseXml(String xmlStream, CodeStatementCollection statementCollection, String fileName, String methodName)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.OnMethodPopulateStatements(Object sender, EventArgs e)
at System.CodeDom.CodeMemberMethod.get_Statements()
at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)
如果我忽略了的异常,形式显示为空白,没有它电网控制的迹象。不过,我可以在设计器文件中看到网格的代码。
对此的任何指针将是一个很大的帮助。
我已经为我的自定义需求定制了网格,例如我已经添加了自定义文本框。我定义了3个构造
public GridControl()
public GridControl(IContainer container)
protected GridControl(SerializationInfo info, StreamingContext context)
我尝试在所有构造函数中使用try..catch块。但我无法捕捉到任何异常。 我没有在初始化中进行任何数据库调用。我只是创建列和所有。 – Ram 2010-04-14 05:02:29
尝试删除默认构造函数中的所有代码。问题是否仍然存在?如果没有,请重新添加您的构造函数代码(或逐块),您将看到代码的哪个部分导致问题。请记住,在代码发生任何更改后重新编译项目,否则设计人员将使用上次编译的代码。 – gehho 2010-04-14 06:13:15
我不认为这与构造函数有什么关系。请注意,序列化正在抛出异常。具体来说,GetMemberTargetObject。我相信这是由于控制中缺少一名成员。设计师正试图恢复财产的价值,财产不见了。 – AMissico 2010-04-15 01:22:22