我目前正在使用Microsoft Visual C#Express Edition(带SP1)进行项目。 编辑一个特定表单时,我在表单编辑器中遇到一些奇怪的错误,消息显示为:
在程序集中键入'System.Windows.Forms.Control' 'System.Windows.Forms,Version = 2.0.0.0,Culture = neutral, PublicKeyToken = b77a5c561934e089'未标记为可序列化。
它试图保存表单的上诉。它通常连续出现3到5次,但有时也会每隔几秒不间断地弹出,直到我杀死应用程序。
我相信它会在我尝试添加一些应用程序设置时启动,但我似乎无法重现它。
任何有关如何发现错误的想法都将不胜感激,谢谢。
编辑:保存表单意味着单击Visual C#Express中的“保存”按钮。我不是试图手动序列化,在IDE中编辑表单时弹出错误。
编辑:这是一个截图 - 当我保存表单时会弹出 http://img10.imageshack.us/my.php?image=notserializable.png
答案 0 :(得分:1)
Windows窗体设计器在您编辑窗体时在.Designer.cs
内序列化您的窗体。这就是为什么你经常在编辑表单时看到错误。
通常,您可以编辑从设计器中的UserControl
或Form
派生的类。您的错误似乎表明它正在尝试序列化控件。您是否将MainForm的基类更改为Control?
或者您是否手动编辑了MainForm.Designer.cs文件?我强烈建议不要直接编辑.Designer.cs文件,因为如果这样做,打破Windows窗体设计器支持非常容易。