我在紧凑的框架表单上遇到此错误。
“属性'inputControl'的代码生成失败。错误是:'对象引用未设置为对象的实例。'”
任何人都知道为什么?它刚刚开始,以前从未成为问题。
答案 0 :(得分:3)
当用户控件无法加载到Visual Studio设计器中时,您需要执行此操作。这些指令适用于vb.net项目,但c#应该类似。此外,在此之前关闭所有打开的窗口(或至少您正在处理的控件的源和设计器文件。)
最后一件事。您应该做的第一件事是确保重新启动visual studio不能解决问题。如果没有,您可以尝试以下步骤。这些说明假定错误的用户控件位于visual studio中的控件库项目中。如果没有,你应该能够稍微调整方向以使其工作,但当控件在自己的项目中时,它会容易得多。
执行以下操作:
注意:这意味着当您运行解决方案时,它将启动另一个Visual Studio实例,而不是实际运行您的解决方案。 Visual Studion的第一个实例(INSTANCE_1)将在您运行时“托管”Visual Studio的第二个实例(INSTANCE_2)。
注意:这将确保INSTANCE_1在任何运行时错误都会发生故障,即使它在try块中命中也是如此。
您应该会发现Visual Studio的INSTANCE_1应该停在导致设计者不加载控件的代码行上。修复代码(这通常意味着在引用对象属性之前测试IsNot Nothing ......但可能意味着其他事情。)
此外,有时我发现控件将在INSTANCE_2中加载,而不是在INSTANCE_1中打破错误。在这种情况下,只需停止调试...关闭INSTANCE_2。保存/重新启动INSTANCE_1,您的问题通常会消失。
教训是这样的。用户控件必须能够加载/引用所有对象及其成员,以便将其加载到设计器中。因此,对于将放置在其他容器上的用户控件,我通常会设计事件来通知父级,而不是尝试将对象推送到子控件中。
希望这有助于将来参考这个老问题。
赛斯
答案 1 :(得分:2)
看看'inputControl'被正在访问的位置,并确保它被正确实例化。