【发布时间】:2012-04-29 06:32:23
【问题描述】:
这是一场可怕的噩梦,我迫切需要帮助。我到处寻求帮助 没有什么可以作为永久修复。
我已经开发了一些自定义控件;扩展按钮、用户控件等的控件。我有一个问题,VS2010 不断随机地,没有我能辨别的押韵或理由,决定何时尝试打开使用它的自定义控件的控件的设计视图 (编辑:'它'是 Windows 窗体生成器) 应该完全删除从 .designer.cs 文件中调用自定义控件的构造函数的行,从而完全破坏我查看设计视图的能力。该应用程序仍然可以正常构建和运行。
我已经测试并排除了以下问题:
公共构造函数 - 显然具有非公共(内部等)构造函数可能会导致此类问题。我检查了 100 次 - 所有自定义控件都有公共构造函数。
空构造函数 - 除了是公共的,它还需要是空的。
-
不调用任何可能在构造函数中失败的东西 - 我已将自定义控件的所有构造函数减少为空
来电。运气不好。Name() { } 命名空间 - 显然位于不同的命名空间会导致问题?我在同一个项目中,文件在同一个项目中。
卸载项目。关闭VS。删除 .suo 智能感知文件。删除 obj 文件。打开VS。重新加载项目。重建项目。还是没有运气。
这真是令人沮丧。到了这一点,我已经准备好放弃使用自定义控件并手动对每个控件进行蒙皮以避免它。有没有人知道是什么原因造成的?
【问题讨论】:
-
一些可能没用的想法:你安装了最新的 VS2010 服务包吗?您的空公共构造函数是否在调用 : base() (不确定是否有必要)。如果您创建一个全新的空白 UserControl,会发生这种情况吗?
-
您需要寻找被诊断吞没的异常。启动另一个 VS 实例并使用 Tools + Attach to Process 附加到第一个实例。调试 + 异常,勾选 CLR 异常的抛出框。回到第一个实例并开始设计。
-
并仔细检查您的 SO 用户名如何影响您的代码。
-
设计器文件明确警告您不要做您所做的事情。你很惊讶它出错了吗?
-
@TomW - 我在我的问题中说 - 我没有编辑 .designer.cs,文件中缺少构造函数调用是问题的症状。
标签: c# winforms visual-studio visual-studio-2010 custom-controls