.net - Windows 窗体设计器因某个窗体而永久损坏

标签 .net winforms visual-studio designer windows-forms-designer

这是 All controls on a form are invisible 的后续行动,现在我对它了解得更多了。

我有一个使用 Visual Studio 2010 的 Windows 窗体设计器创建的某个窗体。它工作正常,直到本周的某个时候。现在,当我对表单进行任何更改并且设计器重新创建 .designer.cs文件,所有绑定(bind)成员都设置为“无”,并且所有 Controls.Add调用被删除。控件在设计器中仍然可见,但是当我运行项目时,控件都是不可见的(由于没有 Controls.Add 调用)。如果我关闭并重新打开设计器,则表单为空白。

没有错误、警告或消息表明设计师为什么是个 SCSS ,我真的不想重新创建该表单上的每个控件,但看起来我可能别无选择。

最佳答案

设计器容易受到在设计时运行的代码引发的异常的影响。其中包括控件的构造函数和 OnPaint()、OnResize() 等方法。如果您的代码在设计时无法正常工作,例如取决于默认工作目录中的文件、可连接的 dbase 服务器等,那么该代码可能会因异常而爆炸。

您将首先注意到设计器放置的崩溃屏幕,它显示的堆栈跟踪通常不能用于诊断原因,因为它具有设计器或代码序列化程序内部的许多方法。第二个影响是,当代码序列化程序在尝试检索属性值以为其生成代码时崩溃时,您可能会丢失 InitializeComponent() 方法中的内容。当您看到 Controls.Add() 调用丢失时,这无疑发生在您的案例中。

在发生此类事故后保存 Designer.cs 文件会给您带来麻烦。修复损坏可能很棘手,从您的 VCS 恢复表单源代码文件通常是您最好的选择。

关于.net - Windows 窗体设计器因某个窗体而永久损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523497/

相关文章:

c# - ASP.Net 中的搜索关键字突出显示

c# - 如何仅使用一个 for 循环反转多个列表框中的选定项目?

.net - Web 服务与 DLL;优点和缺点?

asp.net - 无法读取配置节 'appSettings',因为它缺少节声明

.net - 在运行时创建一个类并在.Net 中使用它?

.net - 如何在 PowerShell 中更改列表框的字体大小

visual-studio - 有人有VS2010 RC的zenburn颜色主题吗?

visual-studio - 创建颠覆存储库的最佳实践?

c# - 添加两个 double 给出错误的结果

c# - 通过服务器从 MySQL 数据库检索图像