Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体设计器和自定义CodeDomSerializer_C#_.net_Visual Studio_Designer - Fatal编程技术网

C# Windows窗体设计器和自定义CodeDomSerializer

C# Windows窗体设计器和自定义CodeDomSerializer,c#,.net,visual-studio,designer,C#,.net,Visual Studio,Designer,我目前正在为一个定制选项卡控件制作一个原型,我们正试图在c#for.NET2.0中实现该控件。由于控件本身工作良好,我们现在正尝试集成完整的设计时行为。这确实在某一点上包含了一个定制的CodeDomSerializer,以告知也必须添加选项卡。现在这确实很好(经过一个较长的反复试验过程) 但还有一个问题似乎与反序列化有关。设计器代码创建得很好,设计器看起来也一样。但当我点击“重建项目”时,表单设计器有时会显示以下错误: The variable 'piTabControl1' is either

我目前正在为一个定制选项卡控件制作一个原型,我们正试图在c#for.NET2.0中实现该控件。由于控件本身工作良好,我们现在正尝试集成完整的设计时行为。这确实在某一点上包含了一个定制的CodeDomSerializer,以告知也必须添加选项卡。现在这确实很好(经过一个较长的反复试验过程)

但还有一个问题似乎与反序列化有关。设计器代码创建得很好,设计器看起来也一样。但当我点击“重建项目”时,表单设计器有时会显示以下错误:

The variable 'piTabControl1' is either undeclared or was never assigned

该错误并非每次都出现,但它总是在我刚刚添加新选项卡时发生。错误指向这一行:

this.Controls.Add(this.piTabControl1);
但我知道变量是赋值的,因为前面几行代码中有:

this.piTabControl1 = new pdfforge.PdfCreator.Controls.PiTabControl();
应用程序也会编译和运行,并正确显示所有内容。如果我关闭设计器并重新打开它,它也会在没有该错误的情况下显示。因此,我怀疑在反序列化代码或更新设计器时出现了问题

我已经在这里上传了完整的解决方案,因为在这里粘贴的代码太多了:

要在项目中重现这一点,首先必须为要编译的自定义控件重新编译整个解决方案。然后你可以打开Form1并点击rebuild。如果不产生错误,可以尝试从选项卡控件添加或删除选项卡


我真的不知道如何处理这个问题,因为我不知道表单设计器的内部状态。我非常感谢你给我的任何暗示。如果需要,我也可以在这里添加特定的代码段。

您好,我无法用VS2012重现该问题。你用的是哪个编辑器?谢谢你的关注。我使用的是Visual Studio 2010这是在设计时引发异常时会遇到的问题,尤其是在64位版本的Windows上。启动VS的另一个实例来调试第一个实例。很抱歉,答案花了一些时间。调试时,我无法找到任何异常。同时我发现,如果我没有与我想要设计的表单位于同一项目中的控件源代码,则不会出现奇怪的异常。如果它保持这样,那么原型的当前状态就可以了。