Windows窗体设计器和自定义CodeDomSerializer

时间:2012-12-06 11:18:13

标签: c# .net visual-studio designer

我目前正在整理一个自定义选项卡控件的原型,我们正尝试在c#中实现.Net 2.0。由于控件本身工作正常,我们现在正在尝试集成完整的设计时行为。这包括在某一点定制的CodeDomSerializer,以告知必须添加选项卡。这样做现在可以正常工作(经过更长时间的试验和错误)。

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

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

http://msdn.microsoft.com/en-us/library/4008y84t(v=vs.80).aspx

每次都不会出现错误,但是当我刚添加新标签时总是会出现错误。错误指向此行:

this.Controls.Add(this.piTabControl1);

但我知道变量已分配,因为这在代码之前几行:

this.piTabControl1 = new pdfforge.PdfCreator.Controls.PiTabControl();

应用程序也可以编译并运行所有正确显示的内容。如果我关闭Designer并重新打开它,它也会显示没有该错误。所以我怀疑在反序列化代码或更新设计器时出现了问题。

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

http://www.chinery.de/dateien/TabControlTest.zip

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

我真的不知道如何处理这个,因为我无法分辨Forms设计器的内在状态。我非常感谢任何提示。如果需要,我也可以在这里添加特定的代码片段。

0 个答案:

没有答案